feat(headerbar): double click to maximize

This commit is contained in:
leb-kuchen 2024-07-23 11:58:55 +02:00 committed by GitHub
parent 3d22fb8fe2
commit 8e67f3ce1c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 12 additions and 3 deletions

2
iced

@ -1 +1 @@
Subproject commit cb315f66b8f1372d6b96c0e99abb8d2f79063a4e
Subproject commit fa817c704dd815cc5723470c49459ad8f81c78f8

View file

@ -708,7 +708,8 @@ impl<App: Application> 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()

View file

@ -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<Message>,
/// A message emitted when the header is double clicked,
/// usually used to maximize the window.
#[setters(strip_option)]
on_double_click: Option<Message>,
/// A message emitted when the header is right clicked.
#[setters(strip_option)]
on_right_click: Option<Message>,
@ -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);
}