summaryrefslogtreecommitdiffstats
path: root/native/src/widget/pane_grid.rs
diff options
context:
space:
mode:
authorLibravatar Cory Forsstrom <cforsstrom18@gmail.com>2022-11-02 17:12:38 -0700
committerLibravatar Cory Forsstrom <cforsstrom18@gmail.com>2022-11-02 17:12:38 -0700
commitdf7bf55ce162c5523f530a43113194a6c064a220 (patch)
treed45689beb9d9ab84e9f1dbb87dbeb63d90197f06 /native/src/widget/pane_grid.rs
parente28c441c693ce9f42d60c98ba6892c6fc78d6724 (diff)
downloadiced-df7bf55ce162c5523f530a43113194a6c064a220.tar.gz
iced-df7bf55ce162c5523f530a43113194a6c064a220.tar.bz2
iced-df7bf55ce162c5523f530a43113194a6c064a220.zip
Disable drag when maximized
Diffstat (limited to 'native/src/widget/pane_grid.rs')
-rw-r--r--native/src/widget/pane_grid.rs20
1 files changed, 18 insertions, 2 deletions
diff --git a/native/src/widget/pane_grid.rs b/native/src/widget/pane_grid.rs
index 1b55537f..a58bfc77 100644
--- a/native/src/widget/pane_grid.rs
+++ b/native/src/widget/pane_grid.rs
@@ -221,6 +221,12 @@ where
self.style = style.into();
self
}
+
+ fn drag_enabled(&self) -> bool {
+ (!self.elements.is_maximized())
+ .then(|| self.on_drag.is_some())
+ .unwrap_or_default()
+ }
}
impl<'a, Message, Renderer> Widget<Message, Renderer>
@@ -296,6 +302,11 @@ where
) -> event::Status {
let action = tree.state.downcast_mut::<state::Action>();
+ let on_drag = self
+ .drag_enabled()
+ .then_some(&self.on_drag)
+ .unwrap_or(&None);
+
let event_status = update(
action,
self.elements.node(self.state),
@@ -306,7 +317,7 @@ where
self.spacing,
self.elements.iter(),
&self.on_click,
- &self.on_drag,
+ on_drag,
&self.on_resize,
);
@@ -361,7 +372,7 @@ where
cursor_position,
viewport,
renderer,
- self.on_drag.is_some(),
+ self.drag_enabled(),
)
})
.max()
@@ -961,4 +972,9 @@ impl<T> Elements<T> {
Elements::Maximized(_, _, node) => node,
}
}
+
+ /// TODO
+ pub fn is_maximized(&self) -> bool {
+ matches!(self, Self::Maximized(..))
+ }
}