summaryrefslogtreecommitdiffstats
path: root/native
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector0193@gmail.com>2021-05-25 16:34:17 +0700
committerLibravatar GitHub <noreply@github.com>2021-05-25 16:34:17 +0700
commite292821c3780fc5a57c835815efc7a232ce4dc32 (patch)
tree8659fb678d989a2f97876b20aa501d5415af4b02 /native
parentdf971ac99beedb41537763f95f7b14d8bf7475a8 (diff)
parentd4c5f3ee950262c578c7b9b2a4aab60d3c5edaed (diff)
downloadiced-e292821c3780fc5a57c835815efc7a232ce4dc32.tar.gz
iced-e292821c3780fc5a57c835815efc7a232ce4dc32.tar.bz2
iced-e292821c3780fc5a57c835815efc7a232ce4dc32.zip
Merge pull request #892 from clarkmoody/title-bar-events
PaneGrid Events in Title Bar Area
Diffstat (limited to '')
-rw-r--r--native/src/widget/pane_grid/title_bar.rs33
1 files changed, 23 insertions, 10 deletions
diff --git a/native/src/widget/pane_grid/title_bar.rs b/native/src/widget/pane_grid/title_bar.rs
index a1e5107e..8e42ce38 100644
--- a/native/src/widget/pane_grid/title_bar.rs
+++ b/native/src/widget/pane_grid/title_bar.rs
@@ -129,15 +129,16 @@ where
if layout.bounds().contains(cursor_position) {
let mut children = layout.children();
let padded = children.next().unwrap();
+ let mut children = padded.children();
+ let title_layout = children.next().unwrap();
if self.controls.is_some() {
- let mut children = padded.children();
- let _ = children.next().unwrap();
let controls_layout = children.next().unwrap();
!controls_layout.bounds().contains(cursor_position)
+ && !title_layout.bounds().contains(cursor_position)
} else {
- true
+ !title_layout.bounds().contains(cursor_position)
}
} else {
false
@@ -205,16 +206,17 @@ where
clipboard: &mut dyn Clipboard,
messages: &mut Vec<Message>,
) -> event::Status {
- if let Some(controls) = &mut self.controls {
- let mut children = layout.children();
- let padded = children.next().unwrap();
+ let mut children = layout.children();
+ let padded = children.next().unwrap();
- let mut children = padded.children();
- let _ = children.next();
+ let mut children = padded.children();
+ let title_layout = children.next().unwrap();
+
+ let control_status = if let Some(controls) = &mut self.controls {
let controls_layout = children.next().unwrap();
controls.on_event(
- event,
+ event.clone(),
controls_layout,
cursor_position,
renderer,
@@ -223,6 +225,17 @@ where
)
} else {
event::Status::Ignored
- }
+ };
+
+ let title_status = self.content.on_event(
+ event,
+ title_layout,
+ cursor_position,
+ renderer,
+ clipboard,
+ messages,
+ );
+
+ control_status.merge(title_status)
}
}