[Xfce4-commits] <xfce4-settings:jeromeg/settings-editor> Remove/reset the selected property when delete is pressed.

Jérôme Guelfucci noreply at xfce.org
Sun Jan 10 00:04:01 CET 2010


Updating branch refs/heads/jeromeg/settings-editor
         to ec044e0f5a72cf0b9b2715793a0edb96d9dd9d94 (commit)
       from 75f51f8813c16de68319ea3a1eba9ecec0806ac3 (commit)

commit ec044e0f5a72cf0b9b2715793a0edb96d9dd9d94
Author: Jérôme Guelfucci <jeromeg at xfce.org>
Date:   Sun Jan 10 00:05:35 2010 +0100

    Remove/reset the selected property when delete is pressed.

 xfce4-settings-editor/main_window.c |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/xfce4-settings-editor/main_window.c b/xfce4-settings-editor/main_window.c
index 2e64ea0..52eed12 100644
--- a/xfce4-settings-editor/main_window.c
+++ b/xfce4-settings-editor/main_window.c
@@ -28,6 +28,7 @@
 #endif
 
 #include <gtk/gtk.h>
+#include <gdk/gdkkeysyms.h>
 
 #include <xfconf/xfconf.h>
 #include <libxfce4util/libxfce4util.h>
@@ -66,6 +67,8 @@ static void
 cb_property_treeview_selection_changed (GtkTreeSelection *selection, GtkBuilder *builder);
 static void
 cb_property_treeview_row_activated (GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *column, GtkBuilder *builder);
+static gboolean
+cb_property_treeview_key_pressed (GtkWidget *widget, GdkEventKey *event, GtkBuilder *builder);
 static void
 cb_property_new_button_clicked (GtkButton *button, GtkBuilder *builder);
 static void
@@ -121,6 +124,8 @@ xfce4_settings_editor_main_window_new(void)
         dialog = gtk_builder_get_object (builder, "main_dialog");
     }
 
+    gtk_widget_add_events (GTK_WIDGET (dialog), GDK_KEY_PRESS_MASK);
+
     hpaned = gtk_builder_get_object (builder, "hpaned2");
 
     /* Set the default size of the window */
@@ -184,6 +189,9 @@ xfce4_settings_editor_main_window_new(void)
     /* improve usability by expanding nodes when clicking on them */
     g_signal_connect (G_OBJECT (property_treeview), "row-activated", G_CALLBACK (cb_property_treeview_row_activated), builder);
 
+    /* Set a handler for key-press-event */
+    g_signal_connect (G_OBJECT (property_treeview), "key-press-event", G_CALLBACK (cb_property_treeview_key_pressed), builder);
+
     /* selection handling */
     selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (channel_treeview));
     g_signal_connect (G_OBJECT (selection), "changed", G_CALLBACK (cb_channel_treeview_selection_changed), builder);
@@ -586,6 +594,20 @@ cb_property_treeview_selection_changed (GtkTreeSelection *selection, GtkBuilder
     g_value_unset (&value);
 }
 
+static gboolean
+cb_property_treeview_key_pressed (GtkWidget *widget, GdkEventKey *event, GtkBuilder *builder)
+{
+  GtkTreeSelection *selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
+
+  if (event->keyval == GDK_Delete && gtk_tree_selection_get_selected (selection, NULL, NULL))
+  {
+      cb_property_revert_button_clicked (NULL, builder);
+      return TRUE;
+  }
+
+  return FALSE;
+}
+
 static void
 cb_type_combo_changed (GtkComboBox *widget, GtkBuilder *builder)
 {



More information about the Xfce4-commits mailing list