[Xfce4-commits] <xfce4-settings:master> Remove/reset the selected property when delete is pressed.
Jérôme Guelfucci
noreply at xfce.org
Tue Jan 19 19:34:24 CET 2010
Updating branch refs/heads/master
to 2f2a619bee296ae8f394e4ac41f0508799c763de (commit)
from 20f86269a41f8d7ea7aa5649ed99ef87a8d64ed8 (commit)
commit 2f2a619bee296ae8f394e4ac41f0508799c763de
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