diff options
author | 2021-05-25 16:34:17 +0700 | |
---|---|---|
committer | 2021-05-25 16:34:17 +0700 | |
commit | e292821c3780fc5a57c835815efc7a232ce4dc32 (patch) | |
tree | 8659fb678d989a2f97876b20aa501d5415af4b02 /native | |
parent | df971ac99beedb41537763f95f7b14d8bf7475a8 (diff) | |
parent | d4c5f3ee950262c578c7b9b2a4aab60d3c5edaed (diff) | |
download | iced-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.rs | 33 |
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) } } |