fix: center workspace applet labels, and expand buttons to fill space available

This commit is contained in:
Ashley Wulber 2022-09-26 14:37:16 -04:00
parent b73e755a42
commit e3be1c1809
No known key found for this signature in database
GPG key ID: 5216D4F46A90A820

View file

@ -2,7 +2,7 @@ mod imp;
use crate::{utils::WorkspaceEvent, workspace_object::WorkspaceObject, TX}; use crate::{utils::WorkspaceEvent, workspace_object::WorkspaceObject, TX};
use glib::Object; use glib::Object;
use gtk4::{glib, prelude::*, subclass::prelude::*, ToggleButton}; use gtk4::{glib, prelude::*, subclass::prelude::*, ToggleButton, Label, Align};
glib::wrapper! { glib::wrapper! {
pub struct WorkspaceButton(ObjectSubclass<imp::WorkspaceButton>) pub struct WorkspaceButton(ObjectSubclass<imp::WorkspaceButton>)
@ -17,9 +17,15 @@ impl WorkspaceButton {
let tb = ToggleButton::with_label(""); let tb = ToggleButton::with_label("");
self_.append(&tb); self_.append(&tb);
self_.set_hexpand(true);
imp.button.replace(tb); imp.button.replace(tb);
self_.connect_parent_notify(|self_| {
if let Some(parent) = self_.parent() {
parent.set_hexpand(true);
}
});
self_ self_
} }
@ -28,10 +34,14 @@ impl WorkspaceButton {
let old_button = imp.button.take(); let old_button = imp.button.take();
self.remove(&old_button); self.remove(&old_button);
let is_active = obj.active() == 0;
let id = obj.id(); 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 { if obj.active() == 1 {
new_button.add_css_class("alert"); new_button.add_css_class("alert");
} else if obj.active() == 0 { } else if obj.active() == 0 {