[Xfce4-commits] <xfce4-panel:devel> Hide workspace button if command is not found.
Nick Schermer
noreply at xfce.org
Wed Feb 24 13:04:03 CET 2010
Updating branch refs/heads/devel
to b1330109880bb470ec85892031a94779f249f61c (commit)
from 774809efbb8cfa9fa55649bebe663ef6fc9d2ac1 (commit)
commit b1330109880bb470ec85892031a94779f249f61c
Author: Nick Schermer <nick at xfce.org>
Date: Wed Feb 24 12:56:00 2010 +0100
Hide workspace button if command is not found.
Also fix some alignments in the glade file.
plugins/pager/pager-dialog.glade | 10 +++-------
plugins/pager/pager.c | 16 +++++++++++++++-
2 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/plugins/pager/pager-dialog.glade b/plugins/pager/pager-dialog.glade
index 9dc1510..3092d12 100644
--- a/plugins/pager/pager-dialog.glade
+++ b/plugins/pager/pager-dialog.glade
@@ -22,19 +22,16 @@
<child>
<object class="GtkFrame" id="frame2">
<property name="visible">True</property>
- <property name="border_width">6</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child>
<object class="GtkAlignment" id="alignment2">
<property name="visible">True</property>
- <property name="top_padding">6</property>
- <property name="bottom_padding">12</property>
- <property name="left_padding">18</property>
- <property name="right_padding">6</property>
+ <property name="left_padding">12</property>
<child>
<object class="GtkVBox" id="vbox4">
<property name="visible">True</property>
+ <property name="border_width">6</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
@@ -127,14 +124,13 @@
<child>
<object class="GtkFrame" id="frame3">
<property name="visible">True</property>
- <property name="border_width">6</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child>
<object class="GtkAlignment" id="alignment3">
<property name="visible">True</property>
<property name="top_padding">6</property>
- <property name="bottom_padding">12</property>
+ <property name="bottom_padding">6</property>
<property name="left_padding">18</property>
<property name="right_padding">6</property>
<child>
diff --git a/plugins/pager/pager.c b/plugins/pager/pager.c
index ddd8751..b2b8163 100644
--- a/plugins/pager/pager.c
+++ b/plugins/pager/pager.c
@@ -36,6 +36,10 @@
+#define WORKSPACE_SETTINGS_COMMAND "xfwm4-workspace-settings"
+
+
+
static void pager_plugin_get_property (GObject *object,
guint prop_id,
GValue *value,
@@ -396,7 +400,7 @@ pager_plugin_configure_workspace_settings (GtkWidget *button)
screen = gdk_screen_get_default ();
/* try to start the settings dialog */
- if (!gdk_spawn_command_line_on_screen (screen, "xfwm4-workspace-settings", &error))
+ if (!gdk_spawn_command_line_on_screen (screen, WORKSPACE_SETTINGS_COMMAND, &error))
{
/* show an error dialog */
toplevel = gtk_widget_get_toplevel (button);
@@ -452,6 +456,7 @@ pager_plugin_configure_plugin (XfcePanelPlugin *panel_plugin)
PagerPlugin *plugin = XFCE_PAGER_PLUGIN (panel_plugin);
GtkBuilder *builder;
GObject *dialog, *object;
+ gchar *path;
panel_return_if_fail (XFCE_IS_PAGER_PLUGIN (plugin));
@@ -470,18 +475,27 @@ pager_plugin_configure_plugin (XfcePanelPlugin *panel_plugin)
g_object_weak_ref (G_OBJECT (builder), pager_plugin_configure_destroyed, plugin);
object = gtk_builder_get_object (builder, "settings-button");
+ panel_return_if_fail (GTK_IS_BUTTON (object));
g_signal_connect (G_OBJECT (object), "clicked",
G_CALLBACK (pager_plugin_configure_workspace_settings), dialog);
+ /* don't show button if xfwm4 is not installed */
+ path = g_find_program_in_path (WORKSPACE_SETTINGS_COMMAND);
+ g_object_set (G_OBJECT (object), "visible", path != NULL, NULL);
+ g_free (path);
+
object = gtk_builder_get_object (builder, "workspace-scrolling");
+ panel_return_if_fail (GTK_IS_TOGGLE_BUTTON (object));
exo_mutual_binding_new (G_OBJECT (plugin), "workspace-scrolling",
G_OBJECT (object), "active");
object = gtk_builder_get_object (builder, "show-names");
+ panel_return_if_fail (GTK_IS_TOGGLE_BUTTON (object));
exo_mutual_binding_new (G_OBJECT (plugin), "show-names",
G_OBJECT (object), "active");
object = gtk_builder_get_object (builder, "rows");
+ panel_return_if_fail (GTK_IS_ADJUSTMENT (object));
exo_mutual_binding_new (G_OBJECT (plugin), "rows",
G_OBJECT (object), "value");
More information about the Xfce4-commits
mailing list