summaryrefslogtreecommitdiffstats
path: root/widget/src/pane_grid.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-07-06 07:37:25 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-07-06 07:56:22 +0200
commitf83ee1e9f99d1ec5621b4dba35ce0d0fced95442 (patch)
tree166f075e5a03237551ff0079adf3a9ea16d95efe /widget/src/pane_grid.rs
parent995c7c1ca9793536ad9b9d1cac94ae7b5b9a8f0a (diff)
downloadiced-f83ee1e9f99d1ec5621b4dba35ce0d0fced95442.tar.gz
iced-f83ee1e9f99d1ec5621b4dba35ce0d0fced95442.tar.bz2
iced-f83ee1e9f99d1ec5621b4dba35ce0d0fced95442.zip
Call `in_edge` only when `picked_pane.is_some()`
Diffstat (limited to 'widget/src/pane_grid.rs')
-rw-r--r--widget/src/pane_grid.rs40
1 files changed, 21 insertions, 19 deletions
diff --git a/widget/src/pane_grid.rs b/widget/src/pane_grid.rs
index 0a8500dc..213460a5 100644
--- a/widget/src/pane_grid.rs
+++ b/widget/src/pane_grid.rs
@@ -843,9 +843,13 @@ pub fn draw<Renderer, T>(
let mut render_picked_pane = None;
- let cursor_in_edge = cursor
- .position()
- .and_then(|cursor_position| in_edge(layout, cursor_position));
+ let pane_in_edge = if picked_pane.is_some() {
+ 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,21 +901,19 @@ pub fn draw<Renderer, T>(
}
}
- if picked_pane.is_some() {
- if let Some(edge) = cursor_in_edge {
- let hovered_region_style = theme.hovered_region(style);
- let bounds = edge_bounds(layout, edge);
-
- renderer.fill_quad(
- renderer::Quad {
- bounds,
- border_radius: hovered_region_style.border_radius.into(),
- border_width: hovered_region_style.border_width,
- border_color: hovered_region_style.border_color,
- },
- theme.hovered_region(style).background,
- );
- }
+ if let Some(edge) = pane_in_edge {
+ let hovered_region_style = theme.hovered_region(style);
+ let bounds = edge_bounds(layout, edge);
+
+ renderer.fill_quad(
+ renderer::Quad {
+ bounds,
+ border_radius: hovered_region_style.border_radius.into(),
+ border_width: hovered_region_style.border_width,
+ border_color: hovered_region_style.border_color,
+ },
+ theme.hovered_region(style).background,
+ );
}
// Render picked pane last