From e3be1c1809760c032ffd62aeb3d6e701272c348b Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Mon, 26 Sep 2022 14:37:16 -0400 Subject: [PATCH] fix: center workspace applet labels, and expand buttons to fill space available --- .../src/workspace_button/mod.rs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/applets/cosmic-applet-workspaces/src/workspace_button/mod.rs b/applets/cosmic-applet-workspaces/src/workspace_button/mod.rs index 2a6385a4..8ceb701a 100644 --- a/applets/cosmic-applet-workspaces/src/workspace_button/mod.rs +++ b/applets/cosmic-applet-workspaces/src/workspace_button/mod.rs @@ -2,7 +2,7 @@ mod imp; use crate::{utils::WorkspaceEvent, workspace_object::WorkspaceObject, TX}; use glib::Object; -use gtk4::{glib, prelude::*, subclass::prelude::*, ToggleButton}; +use gtk4::{glib, prelude::*, subclass::prelude::*, ToggleButton, Label, Align}; glib::wrapper! { pub struct WorkspaceButton(ObjectSubclass) @@ -17,9 +17,15 @@ impl WorkspaceButton { let tb = ToggleButton::with_label(""); self_.append(&tb); - + self_.set_hexpand(true); imp.button.replace(tb); + self_.connect_parent_notify(|self_| { + if let Some(parent) = self_.parent() { + parent.set_hexpand(true); + } + }); + self_ } @@ -28,10 +34,14 @@ impl WorkspaceButton { let old_button = imp.button.take(); self.remove(&old_button); - let is_active = obj.active() == 0; let id = obj.id(); - let new_button = ToggleButton::with_label(&id); + let new_button = ToggleButton::new(); + new_button.set_hexpand(true); + let label = Label::new(Some(&id)); + label.set_halign(Align::Center); + new_button.set_child(Some(&label)); + if obj.active() == 1 { new_button.add_css_class("alert"); } else if obj.active() == 0 {