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() {
cursor
.position() .position()
.and_then(|cursor_position| in_edge(layout, cursor_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,8 +901,7 @@ 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);
@ -912,7 +915,6 @@ pub fn draw<Renderer, T>(
theme.hovered_region(style).background, theme.hovered_region(style).background,
); );
} }
}
// Render picked pane last // Render picked pane last
if let Some((pane, origin, layout)) = render_picked_pane { if let Some((pane, origin, layout)) = render_picked_pane {