Updating branch refs/heads/stephan/dialogs
         to e92abca15041794ecb948d3029dce700c931a1da (commit)
       from 6409ad975d54462bb9182a660e18a3499744f9d3 (commit)

commit e92abca15041794ecb948d3029dce700c931a1da
Author: Stephan Arts <step...@xfce.org>
Date:   Tue Mar 27 19:39:18 2012 +0200

    Hide wm-shortcuts tab when xfwm4 is not running

 dialogs/keyboard-settings/keyboard-dialog.glade    |    2 +-
 dialogs/keyboard-settings/xfce-keyboard-settings.c |   70 ++++++++++++--------
 2 files changed, 42 insertions(+), 30 deletions(-)

diff --git a/dialogs/keyboard-settings/keyboard-dialog.glade 
b/dialogs/keyboard-settings/keyboard-dialog.glade
index a22aa67..6a75f18 100644
--- a/dialogs/keyboard-settings/keyboard-dialog.glade
+++ b/dialogs/keyboard-settings/keyboard-dialog.glade
@@ -629,7 +629,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkFrame" id="frame9">
+                  <object class="GtkFrame" id="xfwm4_shortcuts_frame">
                     <property name="visible">True</property>
                     <property name="border_width">12</property>
                     <property name="label_xalign">0</property>
diff --git a/dialogs/keyboard-settings/xfce-keyboard-settings.c 
b/dialogs/keyboard-settings/xfce-keyboard-settings.c
index 3ef3798..92563a6 100644
--- a/dialogs/keyboard-settings/xfce-keyboard-settings.c
+++ b/dialogs/keyboard-settings/xfce-keyboard-settings.c
@@ -45,6 +45,8 @@
 #include <libxklavier/xklavier.h>
 #endif /* HAVE_LIBXKLAVIER */
 
+#define XFWM4_WM_NAME                   "Xfwm4"
+
 #define CUSTOM_BASE_PROPERTY         "/commands/custom"
 
 #define SHORTCUTS_NAME_COLUMN     0 
@@ -436,39 +438,49 @@ xfce_keyboard_settings_constructed (GObject *object)
   button = gtk_builder_get_object (GTK_BUILDER (settings), 
"reset_shortcuts_button");
   g_signal_connect_swapped (button, "clicked", G_CALLBACK 
(xfce_keyboard_settings_reset_button_clicked), settings);
 
-  /* Configure xfwm shortcuts tree view */
-  xfwm_shortcuts_view = gtk_builder_get_object (GTK_BUILDER (settings), 
"xfwm_shortcuts_view");
-  gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW 
(xfwm_shortcuts_view)), GTK_SELECTION_MULTIPLE);
-  g_signal_connect (xfwm_shortcuts_view, "row-activated", G_CALLBACK 
(xfwm_settings_shortcut_row_activated), settings);
-
-  /* Create list store for xfwm keyboard shortcuts */
-  list_store = gtk_list_store_new (3, G_TYPE_STRING, G_TYPE_STRING, 
G_TYPE_STRING);
-  gtk_tree_view_set_model (GTK_TREE_VIEW (xfwm_shortcuts_view), GTK_TREE_MODEL 
(list_store));
-  g_object_unref (G_OBJECT (list_store));
-
-  /* Connect to xfwm clear button */
-  button = gtk_builder_get_object (GTK_BUILDER (settings), 
"clear_xfwm_shortcuts_button");
-  g_signal_connect_swapped (button, "clicked", G_CALLBACK 
(xfwm_settings_shortcut_clear_clicked), settings);
-
-  /* Create action column */
-  renderer = gtk_cell_renderer_text_new ();
-  column = gtk_tree_view_column_new_with_attributes (_("Action"), renderer, 
"text", SHORTCUTS_NAME_COLUMN, NULL);
-  gtk_tree_view_append_column (GTK_TREE_VIEW (xfwm_shortcuts_view), column);
-
-  /* Create shortcut column */
-  renderer = gtk_cell_renderer_text_new ();
-  column = gtk_tree_view_column_new_with_attributes (_("Shortcut"), renderer, 
"text", SHORTCUTS_SHORTCUT_COLUMN, NULL);
-  gtk_tree_view_append_column (GTK_TREE_VIEW (xfwm_shortcuts_view), column);
-
-  /* Connect to xfwm reset button */
-  button = gtk_builder_get_object (GTK_BUILDER (settings), 
"reset_xfwm_shortcuts_button");
-  g_signal_connect_swapped (button, "clicked", G_CALLBACK 
(xfwm_settings_shortcut_reset_clicked), settings);
+  if (!strcmp(XFWM4_WM_NAME, gdk_x11_screen_get_window_manager_name ( 
gdk_screen_get_default ())))
+  {
+    DBG ("xfwm4 not running, wm: %s", gdk_x11_screen_get_window_manager_name ( 
gdk_screen_get_default ()));
+    object = gtk_builder_get_object (GTK_BUILDER (settings), 
"xfwm4_shortcuts_frame");
+    gtk_widget_destroy (GTK_WIDGET (object));
+  }
+  else
+  {
+    /* Configure xfwm shortcuts tree view */
+    xfwm_shortcuts_view = gtk_builder_get_object (GTK_BUILDER (settings), 
"xfwm_shortcuts_view");
+    gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW 
(xfwm_shortcuts_view)), GTK_SELECTION_MULTIPLE);
+    g_signal_connect (xfwm_shortcuts_view, "row-activated", G_CALLBACK 
(xfwm_settings_shortcut_row_activated), settings);
+
+    /* Create list store for xfwm keyboard shortcuts */
+    list_store = gtk_list_store_new (3, G_TYPE_STRING, G_TYPE_STRING, 
G_TYPE_STRING);
+    gtk_tree_view_set_model (GTK_TREE_VIEW (xfwm_shortcuts_view), 
GTK_TREE_MODEL (list_store));
+    g_object_unref (G_OBJECT (list_store));
+
+    /* Connect to xfwm clear button */
+    button = gtk_builder_get_object (GTK_BUILDER (settings), 
"clear_xfwm_shortcuts_button");
+    g_signal_connect_swapped (button, "clicked", G_CALLBACK 
(xfwm_settings_shortcut_clear_clicked), settings);
+
+    /* Create action column */
+    renderer = gtk_cell_renderer_text_new ();
+    column = gtk_tree_view_column_new_with_attributes (_("Action"), renderer, 
"text", SHORTCUTS_NAME_COLUMN, NULL);
+    gtk_tree_view_append_column (GTK_TREE_VIEW (xfwm_shortcuts_view), column);
+
+    /* Create shortcut column */
+    renderer = gtk_cell_renderer_text_new ();
+    column = gtk_tree_view_column_new_with_attributes (_("Shortcut"), 
renderer, "text", SHORTCUTS_SHORTCUT_COLUMN, NULL);
+    gtk_tree_view_append_column (GTK_TREE_VIEW (xfwm_shortcuts_view), column);
+
+    /* Connect to xfwm reset button */
+    button = gtk_builder_get_object (GTK_BUILDER (settings), 
"reset_xfwm_shortcuts_button");
+    g_signal_connect_swapped (button, "clicked", G_CALLBACK 
(xfwm_settings_shortcut_reset_clicked), settings);
+
+    xfwm_settings_initialize_shortcuts (settings);
+    xfwm_settings_reload_shortcuts (settings);
+  }
 
   xfce_keyboard_settings_initialize_shortcuts (settings);
   xfce_keyboard_settings_load_shortcuts (settings);
 
-  xfwm_settings_initialize_shortcuts (settings);
-  xfwm_settings_reload_shortcuts (settings);
 
 #ifdef HAVE_LIBXKLAVIER
   /* Init xklavier engine */
_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
https://mail.xfce.org/mailman/listinfo/xfce4-commits

Reply via email to