From 4c32aa28ff4e10a30e175f43b71de6155233e1fb Mon Sep 17 00:00:00 2001 From: Evan Maddock Date: Wed, 12 Feb 2025 15:18:47 -0500 Subject: [PATCH] workspace-applet: Make add workspace button react to capabilities Signed-off-by: Evan Maddock --- .../applets/workspaces/WorkspacesApplet.vala | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/panel/applets/workspaces/WorkspacesApplet.vala b/src/panel/applets/workspaces/WorkspacesApplet.vala index 2c1bd45dd..04dbff3b7 100644 --- a/src/panel/applets/workspaces/WorkspacesApplet.vala +++ b/src/panel/applets/workspaces/WorkspacesApplet.vala @@ -115,6 +115,14 @@ namespace Workspaces { add_button.get_style_context().add_class("workspace-add-button"); add_button.valign = Gtk.Align.CENTER; add_button.halign = Gtk.Align.CENTER; + + if (!(libxfce4windowing.WorkspaceGroupCapabilities.CREATE_WORKSPACE in workspace_group.get_capabilities())) { + add_button.sensitive = false; + add_button.set_tooltip_text(_("Not able to create new workspaces")); + } else { + add_button.set_tooltip_text(_("Create a new workspace")); + } + add_button_revealer.add(add_button); main_layout.pack_start(add_button_revealer, false, false, 0); @@ -210,6 +218,18 @@ namespace Workspaces { return Gdk.EVENT_STOP; }); + + workspace_group.capabilities_changed.connect((changed_mask, new_capabilities) => { + if (libxfce4windowing.WorkspaceGroupCapabilities.CREATE_WORKSPACE in changed_mask) { + if (!(libxfce4windowing.WorkspaceGroupCapabilities.CREATE_WORKSPACE in new_capabilities)) { + add_button.sensitive = false; + add_button.set_tooltip_text(_("Not able to create new workspaces")); + } else { + add_button.sensitive = true; + add_button.set_tooltip_text(_("Create a new workspace")); + } + } + }); } private void on_settings_change(string key) {