Make button close toplevels
This commit is contained in:
parent
039e0a9585
commit
0226f20da1
1 changed files with 13 additions and 3 deletions
16
src/main.rs
16
src/main.rs
|
|
@ -41,7 +41,9 @@ enum Msg {
|
|||
Close,
|
||||
Closed(SurfaceIdWrapper),
|
||||
ActivateWorkspace(zcosmic_workspace_handle_v1::ZcosmicWorkspaceHandleV1),
|
||||
CloseWorkspace(zcosmic_workspace_handle_v1::ZcosmicWorkspaceHandleV1),
|
||||
ActivateToplevel(zcosmic_toplevel_handle_v1::ZcosmicToplevelHandleV1),
|
||||
CloseToplevel(zcosmic_toplevel_handle_v1::ZcosmicToplevelHandleV1),
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
|
|
@ -245,6 +247,13 @@ impl Application for App {
|
|||
}
|
||||
}
|
||||
}
|
||||
Msg::CloseWorkspace(workspace_handle) => {}
|
||||
Msg::CloseToplevel(toplevel_handle) => {
|
||||
// TODO confirmation?
|
||||
if let Some(toplevel_manager) = self.toplevel_manager.as_ref() {
|
||||
toplevel_manager.close(&toplevel_handle);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Command::none()
|
||||
|
|
@ -305,9 +314,10 @@ fn layer_surface<'a>(app: &'a App, surface: &'a LayerSurface) -> cosmic::Element
|
|||
.into()
|
||||
}
|
||||
|
||||
fn close_button() -> cosmic::Element<'static, Msg> {
|
||||
fn close_button(on_press: Msg) -> cosmic::Element<'static, Msg> {
|
||||
iced::widget::button(cosmic::widget::icon("window-close-symbolic", 16))
|
||||
.style(cosmic::theme::Button::Destructive)
|
||||
.on_press(on_press)
|
||||
.into()
|
||||
}
|
||||
|
||||
|
|
@ -319,7 +329,7 @@ fn workspace_sidebar_entry(workspace: &Workspace) -> cosmic::Element<Msg> {
|
|||
cosmic::theme::Button::Secondary
|
||||
};
|
||||
widget::column![
|
||||
close_button(), // TODO close button
|
||||
close_button(Msg::CloseWorkspace(workspace.handle.clone())),
|
||||
widget::button(widget::Image::new(workspace.img.clone().unwrap_or_else(
|
||||
|| widget::image::Handle::from_pixels(0, 0, vec![0, 0, 0, 255])
|
||||
)))
|
||||
|
|
@ -346,7 +356,7 @@ fn toplevel_preview<'a>(toplevel: &'a Toplevel) -> cosmic::Element<'a, Msg> {
|
|||
// - selectable
|
||||
// name of window
|
||||
widget::column![
|
||||
close_button(), // TODO close button
|
||||
close_button(Msg::CloseToplevel(toplevel.handle.clone())),
|
||||
widget::button(widget::Image::new(toplevel.img.clone().unwrap_or_else(
|
||||
|| widget::image::Handle::from_pixels(0, 0, vec![0, 0, 0, 255]),
|
||||
)))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue