Fix window drag and add double click to maximize in gallery view

This commit is contained in:
Jeremy Soller 2024-09-23 16:05:43 -06:00
parent 7b2e448947
commit c711704947
No known key found for this signature in database
GPG key ID: D02FD439211AF56F
3 changed files with 14 additions and 1 deletions

View file

@ -2403,6 +2403,9 @@ impl Application for App {
tab::Command::WindowDrag => { tab::Command::WindowDrag => {
commands.push(window::drag(self.main_window_id())); commands.push(window::drag(self.main_window_id()));
} }
tab::Command::WindowToggleMaximize => {
commands.push(window::toggle_maximize(self.main_window_id()));
}
} }
} }
return Command::batch(commands); return Command::batch(commands);

View file

@ -1359,6 +1359,9 @@ impl Application for App {
tab::Command::WindowDrag => { tab::Command::WindowDrag => {
commands.push(window::drag(self.main_window_id())); commands.push(window::drag(self.main_window_id()));
} }
tab::Command::WindowToggleMaximize => {
commands.push(window::toggle_maximize(self.main_window_id()));
}
unsupported => { unsupported => {
log::warn!("{unsupported:?} not supported in dialog mode"); log::warn!("{unsupported:?} not supported in dialog mode");
} }

View file

@ -819,6 +819,7 @@ pub enum Command {
Preview(PreviewKind, Duration), Preview(PreviewKind, Duration),
PreviewCancel, PreviewCancel,
WindowDrag, WindowDrag,
WindowToggleMaximize,
} }
#[derive(Clone, Debug)] #[derive(Clone, Debug)]
@ -864,6 +865,7 @@ pub enum Message {
DndEnter(Location), DndEnter(Location),
DndLeave(Location), DndLeave(Location),
WindowDrag, WindowDrag,
WindowToggleMaximize,
ZoomDefault, ZoomDefault,
ZoomIn, ZoomIn,
ZoomOut, ZoomOut,
@ -2279,6 +2281,9 @@ impl Tab {
Message::WindowDrag => { Message::WindowDrag => {
commands.push(Command::WindowDrag); commands.push(Command::WindowDrag);
} }
Message::WindowToggleMaximize => {
commands.push(Command::WindowToggleMaximize);
}
Message::ZoomDefault => match self.config.view { Message::ZoomDefault => match self.config.view {
View::List => self.config.icon_sizes.list = 100.try_into().unwrap(), View::List => self.config.icon_sizes.list = 100.try_into().unwrap(),
View::Grid => self.config.icon_sizes.grid = 100.try_into().unwrap(), View::Grid => self.config.icon_sizes.grid = 100.try_into().unwrap(),
@ -2556,7 +2561,9 @@ impl Tab {
); );
row = row.push(widget::horizontal_space(Length::Fixed(space_xxs.into()))); row = row.push(widget::horizontal_space(Length::Fixed(space_xxs.into())));
// This mouse area provides window drag while the header bar is hidden // This mouse area provides window drag while the header bar is hidden
let mouse_area = mouse_area::MouseArea::new(row).on_press(|_| Message::WindowDrag); let mouse_area = mouse_area::MouseArea::new(row)
.on_drag(|_| Message::WindowDrag)
.on_double_click(|_| Message::WindowToggleMaximize);
column = column.push(mouse_area); column = column.push(mouse_area);
} }
{ {