[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