diff --git a/Cargo.lock b/Cargo.lock index 1dfc9dc..5d11e2b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -731,7 +731,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#cf2818c4a163caaa6a627e7aa6bcd40e455c7a6a" +source = "git+https://github.com/pop-os/libcosmic#31d7c75098a9ea4857bc16321306aa40ed14eac2" dependencies = [ "atomicwrites", "calloop", @@ -746,7 +746,7 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#cf2818c4a163caaa6a627e7aa6bcd40e455c7a6a" +source = "git+https://github.com/pop-os/libcosmic#31d7c75098a9ea4857bc16321306aa40ed14eac2" dependencies = [ "quote", "syn 1.0.109", @@ -874,7 +874,7 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#cf2818c4a163caaa6a627e7aa6bcd40e455c7a6a" +source = "git+https://github.com/pop-os/libcosmic#31d7c75098a9ea4857bc16321306aa40ed14eac2" dependencies = [ "anyhow", "cosmic-config", @@ -1099,7 +1099,7 @@ dependencies = [ "hashbrown 0.12.3", "lock_api", "once_cell", - "parking_lot_core 0.9.7", + "parking_lot_core 0.9.8", ] [[package]] @@ -1828,9 +1828,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ "cfg-if", "js-sys", @@ -2123,7 +2123,7 @@ dependencies = [ [[package]] name = "iced" version = "0.9.0" -source = "git+https://github.com/pop-os/libcosmic#cf2818c4a163caaa6a627e7aa6bcd40e455c7a6a" +source = "git+https://github.com/pop-os/libcosmic#31d7c75098a9ea4857bc16321306aa40ed14eac2" dependencies = [ "iced_accessibility", "iced_core", @@ -2139,7 +2139,7 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#cf2818c4a163caaa6a627e7aa6bcd40e455c7a6a" +source = "git+https://github.com/pop-os/libcosmic#31d7c75098a9ea4857bc16321306aa40ed14eac2" dependencies = [ "accesskit", "accesskit_unix", @@ -2148,7 +2148,7 @@ dependencies = [ [[package]] name = "iced_core" version = "0.9.0" -source = "git+https://github.com/pop-os/libcosmic#cf2818c4a163caaa6a627e7aa6bcd40e455c7a6a" +source = "git+https://github.com/pop-os/libcosmic#31d7c75098a9ea4857bc16321306aa40ed14eac2" dependencies = [ "bitflags 1.3.2", "iced_accessibility", @@ -2163,7 +2163,7 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.6.0" -source = "git+https://github.com/pop-os/libcosmic#cf2818c4a163caaa6a627e7aa6bcd40e455c7a6a" +source = "git+https://github.com/pop-os/libcosmic#31d7c75098a9ea4857bc16321306aa40ed14eac2" dependencies = [ "futures", "iced_core", @@ -2176,7 +2176,7 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.8.0" -source = "git+https://github.com/pop-os/libcosmic#cf2818c4a163caaa6a627e7aa6bcd40e455c7a6a" +source = "git+https://github.com/pop-os/libcosmic#31d7c75098a9ea4857bc16321306aa40ed14eac2" dependencies = [ "bitflags 1.3.2", "bytemuck", @@ -2193,7 +2193,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#cf2818c4a163caaa6a627e7aa6bcd40e455c7a6a" +source = "git+https://github.com/pop-os/libcosmic#31d7c75098a9ea4857bc16321306aa40ed14eac2" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -2205,7 +2205,7 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#cf2818c4a163caaa6a627e7aa6bcd40e455c7a6a" +source = "git+https://github.com/pop-os/libcosmic#31d7c75098a9ea4857bc16321306aa40ed14eac2" dependencies = [ "iced_accessibility", "iced_core", @@ -2217,7 +2217,7 @@ dependencies = [ [[package]] name = "iced_sctk" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#cf2818c4a163caaa6a627e7aa6bcd40e455c7a6a" +source = "git+https://github.com/pop-os/libcosmic#31d7c75098a9ea4857bc16321306aa40ed14eac2" dependencies = [ "enum-repr", "float-cmp", @@ -2238,7 +2238,7 @@ dependencies = [ [[package]] name = "iced_style" version = "0.8.0" -source = "git+https://github.com/pop-os/libcosmic#cf2818c4a163caaa6a627e7aa6bcd40e455c7a6a" +source = "git+https://github.com/pop-os/libcosmic#31d7c75098a9ea4857bc16321306aa40ed14eac2" dependencies = [ "iced_core", "once_cell", @@ -2248,7 +2248,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#cf2818c4a163caaa6a627e7aa6bcd40e455c7a6a" +source = "git+https://github.com/pop-os/libcosmic#31d7c75098a9ea4857bc16321306aa40ed14eac2" dependencies = [ "bytemuck", "cosmic-text", @@ -2266,7 +2266,7 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.10.0" -source = "git+https://github.com/pop-os/libcosmic#cf2818c4a163caaa6a627e7aa6bcd40e455c7a6a" +source = "git+https://github.com/pop-os/libcosmic#31d7c75098a9ea4857bc16321306aa40ed14eac2" dependencies = [ "bitflags 1.3.2", "bytemuck", @@ -2288,7 +2288,7 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#cf2818c4a163caaa6a627e7aa6bcd40e455c7a6a" +source = "git+https://github.com/pop-os/libcosmic#31d7c75098a9ea4857bc16321306aa40ed14eac2" dependencies = [ "iced_renderer", "iced_runtime", @@ -2303,7 +2303,7 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.9.1" -source = "git+https://github.com/pop-os/libcosmic#cf2818c4a163caaa6a627e7aa6bcd40e455c7a6a" +source = "git+https://github.com/pop-os/libcosmic#31d7c75098a9ea4857bc16321306aa40ed14eac2" dependencies = [ "iced_graphics", "iced_runtime", @@ -2610,14 +2610,14 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" [[package]] name = "libc" -version = "0.2.145" +version = "0.2.146" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc86cde3ff845662b8f4ef6cb50ea0e20c524eb3d29ae048287e06a1b3fa6a81" +checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b" [[package]] name = "libcosmic" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#cf2818c4a163caaa6a627e7aa6bcd40e455c7a6a" +source = "git+https://github.com/pop-os/libcosmic#31d7c75098a9ea4857bc16321306aa40ed14eac2" dependencies = [ "apply", "cosmic-config", @@ -2693,9 +2693,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", @@ -3167,9 +3167,9 @@ dependencies = [ [[package]] name = "object" -version = "0.30.3" +version = "0.30.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" +checksum = "03b4680b86d9cfafba8fc491dc9b6df26b68cf40e9e6cd73909194759a63c385" dependencies = [ "memchr", ] @@ -3314,7 +3314,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.7", + "parking_lot_core 0.9.8", ] [[package]] @@ -3333,15 +3333,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.7" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" +checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.2.16", + "redox_syscall 0.3.5", "smallvec", - "windows-sys 0.45.0", + "windows-targets 0.48.0", ] [[package]] diff --git a/app/src/app.rs b/app/src/app.rs index e6caf5e..0fe55cc 100644 --- a/app/src/app.rs +++ b/app/src/app.rs @@ -418,6 +418,10 @@ impl Application for SettingsApp { fn close_requested(&self, id: window::Id) -> Self::Message { if id == window::Id(0) { Message::Close + } else if id == applets::ADD_APPLET_DIALOGUE_ID { + Message::PageMessage(crate::pages::Message::Applet( + applets::Message::ClosedAppletDialogue, + )) } else { Message::None } diff --git a/app/src/main.rs b/app/src/main.rs index ca57046..d057144 100644 --- a/app/src/main.rs +++ b/app/src/main.rs @@ -59,7 +59,9 @@ pub fn main() -> color_eyre::Result<()> { cosmic::settings::set_default_icon_theme("Pop"); let mut settings = cosmic::settings(); settings.initial_surface = InitialSurface::XdgWindow(SctkWindowSettings { + title: Some(fl!("app")), size_limits: Limits::NONE.min_width(600.0).min_height(300.0), + app_id: Some("com.system76.CosmicSettings".to_string()), ..Default::default() }); diff --git a/app/src/pages/desktop/panel/applets.rs b/app/src/pages/desktop/panel/applets.rs index e81b797..63b8d47 100644 --- a/app/src/pages/desktop/panel/applets.rs +++ b/app/src/pages/desktop/panel/applets.rs @@ -78,6 +78,7 @@ pub struct Page { current_config: Option, reorder_widget_state: ReorderWidgetState, search: String, + has_dialogue: bool, } impl Default for Page { @@ -95,6 +96,7 @@ impl Default for Page { current_config, reorder_widget_state: ReorderWidgetState::default(), search: String::new(), + has_dialogue: false, } } } @@ -135,6 +137,7 @@ pub enum Message { AddApplet(Applet<'static>), AddAppletDialogue, CloseAppletDialogue, + ClosedAppletDialogue, DragAppletDialogue, Save, Cancel, @@ -165,6 +168,7 @@ impl Debug for Message { Message::AddAppletDialogue => write!(f, "AddAppletDialogue"), Message::CloseAppletDialogue => write!(f, "CloseAppletDialogue"), Message::DragAppletDialogue => write!(f, "DragAppletDialogue"), + Message::ClosedAppletDialogue => write!(f, "ClosedAppletDialogue"), } } } @@ -428,11 +432,12 @@ impl Page { return commands::window::close_window(ADD_APPLET_DIALOGUE_ID); } Message::AddAppletDialogue => { + self.has_dialogue = true; let window_settings = SctkWindowSettings { window_id: ADD_APPLET_DIALOGUE_ID, app_id: Some("com.system76.CosmicSettings".to_string()), title: Some(fl!("add-applet")), - parent: None, + parent: Some(window::Id(0)), autosize: false, size_limits: layout::Limits::NONE .min_width(300.0) @@ -446,7 +451,11 @@ impl Page { }; return commands::window::get_window(window_settings); } + Message::ClosedAppletDialogue => { + self.has_dialogue = false; + } Message::CloseAppletDialogue => { + self.has_dialogue = false; return commands::window::close_window(ADD_APPLET_DIALOGUE_ID); } Message::DragAppletDialogue => { @@ -465,14 +474,18 @@ pub fn lists() -> Section { text(fl!("unknown")) ); }; + let button = cosmic::iced::widget::button(text(fl!("add-applet"))) + .style(theme::Button::Secondary) + .padding(8.0); column![ column![ row![ text(fl!("applets")).width(Length::Fill).size(24), - cosmic::iced::widget::button(text(fl!("add-applet"))) - .style(theme::Button::Secondary) - .padding(8.0) - .on_press(Message::AddAppletDialogue) + if page.has_dialogue { + button + } else { + button.on_press(Message::AddAppletDialogue) + } ], text(fl!("start-segment")), AppletReorderList::new(