Call in_edge only when picked_pane.is_some()

This commit is contained in:
Héctor Ramón Jiménez 2023-07-06 07:37:25 +02:00
parent 995c7c1ca9
commit f83ee1e9f9
No known key found for this signature in database
GPG key ID: 140CC052C94F138E

View file

@ -843,9 +843,13 @@ pub fn draw<Renderer, T>(
let mut render_picked_pane = None; let mut render_picked_pane = None;
let cursor_in_edge = cursor let pane_in_edge = if picked_pane.is_some() {
.position() cursor
.and_then(|cursor_position| in_edge(layout, cursor_position)); .position()
.and_then(|cursor_position| in_edge(layout, cursor_position))
} else {
None
};
for ((id, pane), pane_layout) in contents.zip(layout.children()) { for ((id, pane), pane_layout) in contents.zip(layout.children()) {
match picked_pane { match picked_pane {
@ -862,7 +866,7 @@ pub fn draw<Renderer, T>(
viewport, viewport,
); );
if picked_pane.is_some() && cursor_in_edge.is_none() { if picked_pane.is_some() && pane_in_edge.is_none() {
if let Some(region) = if let Some(region) =
cursor.position().and_then(|cursor_position| { cursor.position().and_then(|cursor_position| {
layout_region(pane_layout, cursor_position) layout_region(pane_layout, cursor_position)
@ -897,21 +901,19 @@ pub fn draw<Renderer, T>(
} }
} }
if picked_pane.is_some() { if let Some(edge) = pane_in_edge {
if let Some(edge) = cursor_in_edge { let hovered_region_style = theme.hovered_region(style);
let hovered_region_style = theme.hovered_region(style); let bounds = edge_bounds(layout, edge);
let bounds = edge_bounds(layout, edge);
renderer.fill_quad( renderer.fill_quad(
renderer::Quad { renderer::Quad {
bounds, bounds,
border_radius: hovered_region_style.border_radius.into(), border_radius: hovered_region_style.border_radius.into(),
border_width: hovered_region_style.border_width, border_width: hovered_region_style.border_width,
border_color: hovered_region_style.border_color, border_color: hovered_region_style.border_color,
}, },
theme.hovered_region(style).background, theme.hovered_region(style).background,
); );
}
} }
// Render picked pane last // Render picked pane last