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 cursor_in_edge = cursor
let pane_in_edge = if picked_pane.is_some() {
cursor
.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()) {
match picked_pane {
@ -862,7 +866,7 @@ pub fn draw<Renderer, T>(
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) =
cursor.position().and_then(|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) = cursor_in_edge {
if let Some(edge) = pane_in_edge {
let hovered_region_style = theme.hovered_region(style);
let bounds = edge_bounds(layout, edge);
@ -912,7 +915,6 @@ pub fn draw<Renderer, T>(
theme.hovered_region(style).background,
);
}
}
// Render picked pane last
if let Some((pane, origin, layout)) = render_picked_pane {