diff --git a/iced b/iced index cb315f66..fa817c70 160000 --- a/iced +++ b/iced @@ -1 +1 @@ -Subproject commit cb315f66b8f1372d6b96c0e99abb8d2f79063a4e +Subproject commit fa817c704dd815cc5723470c49459ad8f81c78f8 diff --git a/src/app/mod.rs b/src/app/mod.rs index e5b516c3..bcacd3b3 100644 --- a/src/app/mod.rs +++ b/src/app/mod.rs @@ -708,7 +708,8 @@ impl ApplicationExt for App { .title(&core.window.header_title) .on_drag(Message::Cosmic(cosmic::Message::Drag)) .on_close(Message::Cosmic(cosmic::Message::Close)) - .on_right_click(Message::Cosmic(cosmic::Message::ShowWindowMenu)); + .on_right_click(Message::Cosmic(cosmic::Message::ShowWindowMenu)) + .on_double_click(Message::Cosmic(cosmic::Message::Maximize)); if self.nav_model().is_some() { let toggle = crate::widget::nav_bar_toggle() diff --git a/src/widget/header_bar.rs b/src/widget/header_bar.rs index d27a7252..4975215a 100644 --- a/src/widget/header_bar.rs +++ b/src/widget/header_bar.rs @@ -23,6 +23,7 @@ pub fn header_bar<'a, Message>() -> HeaderBar<'a, Message> { end: Vec::new(), density: None, focused: false, + on_double_click: None, } } @@ -48,6 +49,11 @@ pub struct HeaderBar<'a, Message> { #[setters(strip_option)] on_minimize: Option, + /// A message emitted when the header is double clicked, + /// usually used to maximize the window. + #[setters(strip_option)] + on_double_click: Option, + /// A message emitted when the header is right clicked. #[setters(strip_option)] on_right_click: Option, @@ -327,7 +333,9 @@ impl<'a, Message: Clone + 'static> HeaderBar<'a, Message> { if let Some(message) = self.on_maximize.clone() { widget = widget.on_release(message); } - + if let Some(message) = self.on_double_click.clone() { + widget = widget.on_double_press(message); + } if let Some(message) = self.on_right_click.clone() { widget = widget.on_right_press(message); }