diff --git a/Cargo.toml b/Cargo.toml index ff44855e..eb306dfa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,6 +18,7 @@ x11 = { version = "2", features = ["xlib"] } # examples gtk4 = { version ="0.3.1", features = ["v4_4"] } glib-sys = "0.14.0" +relm4-macros = { git = "https://github.com/AaronErhardt/Relm4" } pop-launcher-service = { git = "https://github.com/wash2/launcher.git" } pop-launcher = { git = "https://github.com/wash2/launcher.git" } serde = "1.0.130" diff --git a/examples/dock/dock_item/mod.rs b/examples/dock/dock_item/mod.rs index a1561869..327f448e 100644 --- a/examples/dock/dock_item/mod.rs +++ b/examples/dock/dock_item/mod.rs @@ -102,11 +102,8 @@ impl DockItem { let old_image = self_.image.replace(None); if let Some(old_image) = old_image { self_.item_box.borrow().remove(&old_image); - } - self_.item_box.borrow().prepend(&image); - let old_image = self_.image.replace(Some(image)); - if let Some(old_image) = old_image { - self_.item_box.borrow().remove(&old_image); + self_.item_box.borrow().prepend(&image); + self_.image.replace(Some(image)); } if let Ok(active_value) = dock_object.property("active") { if let Ok(active) = active_value.get::() { diff --git a/examples/dock/dock_popover/mod.rs b/examples/dock/dock_popover/mod.rs index c52f4510..0bd0b0e8 100644 --- a/examples/dock/dock_popover/mod.rs +++ b/examples/dock/dock_popover/mod.rs @@ -43,6 +43,12 @@ impl DockPopover { pub fn update_layout(&self) { self.reset_menu(); + cascade! { + &self; + ..set_spacing(4); + ..set_orientation(Orientation::Vertical); + ..set_hexpand(true); + }; // build menu let imp = imp::DockPopover::from_instance(&self); @@ -50,18 +56,8 @@ impl DockPopover { let menu_handle = imp.menu_handle.borrow(); if let Some(dock_object) = dock_object.as_ref() { if let Some(menu) = dock_object.get_popover_menu() { - // TODO investigate (dock:255244): Gtk-CRITICAL **: 19:12:38.668: gtk_at_context_set_accessible_role: assertion '!self->realized' failed - // appears after setting the menu handle a second time - // possibly solved by https://gitlab.gnome.org/GNOME/gtk/-/issues/4421 menu_handle.append(&menu); } else { - cascade! { - &self; - ..set_spacing(4); - ..set_orientation(Orientation::Vertical); - ..set_hexpand(true); - }; - let all_windows_item_container = cascade! { Box::new(Orientation::Vertical, 4); }; diff --git a/examples/dock/window/mod.rs b/examples/dock/window/mod.rs index eba80a04..3649e81f 100644 --- a/examples/dock/window/mod.rs +++ b/examples/dock/window/mod.rs @@ -175,6 +175,8 @@ impl Window { ) .expect("failed to configure window..."); conn.flush().expect("failed to flush"); + // fix (dock:294469): Gdk-CRITICAL **: 19:19:25.652: gdk_surface_request_layout: assertion 'frame_clock' failed + s.request_layout(); } }); diff --git a/examples/launcher/search_result_object/mod.rs b/examples/launcher/search_result_object/mod.rs index 0d2266b9..847e1ec9 100644 --- a/examples/launcher/search_result_object/mod.rs +++ b/examples/launcher/search_result_object/mod.rs @@ -1,7 +1,6 @@ use crate::utils::BoxedSearchResult; use gtk4::glib; use gtk4::prelude::*; -use gtk4::subclass::prelude::*; mod imp; diff --git a/examples/launcher/window/mod.rs b/examples/launcher/window/mod.rs index 40af3dff..4f3f3535 100644 --- a/examples/launcher/window/mod.rs +++ b/examples/launcher/window/mod.rs @@ -18,7 +18,6 @@ use x11rb::protocol::xproto::ConnectionExt; use libcosmic::x; use crate::search_result_row::SearchResultRow; -use crate::utils::BoxedSearchResult; use crate::SearchResultObject; use crate::TX; use crate::X11_CONN;