diff options
author | Denys Vlasenko <dvlasenk@redhat.com> | 2011-02-10 16:51:29 +0100 |
---|---|---|
committer | Denys Vlasenko <dvlasenk@redhat.com> | 2011-02-10 16:51:29 +0100 |
commit | 394508ab25eb2a78a40cde19714e9afa2537c393 (patch) | |
tree | adeef30933886d69914d24941f7da3f233593609 /src | |
parent | f8c0e544a905ba42c8b550409f492081534977f5 (diff) | |
download | abrt-394508ab25eb2a78a40cde19714e9afa2537c393.tar.gz abrt-394508ab25eb2a78a40cde19714e9afa2537c393.tar.xz abrt-394508ab25eb2a78a40cde19714e9afa2537c393.zip |
abrt-gtk: add keyboard handler for delete key
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/gui-gtk/abrt-gtk.c | 41 |
1 files changed, 33 insertions, 8 deletions
diff --git a/src/gui-gtk/abrt-gtk.c b/src/gui-gtk/abrt-gtk.c index 135dd5a7..42b18fb4 100644 --- a/src/gui-gtk/abrt-gtk.c +++ b/src/gui-gtk/abrt-gtk.c @@ -1,4 +1,5 @@ #include <gtk/gtk.h> +#include <gdk/gdkkeysyms.h> #include "abrtlib.h" #include "abrt-gtk.h" @@ -58,23 +59,47 @@ void add_directory_to_dirlist(const char *dirname) /* create_main_window and helpers */ -static void on_row_activated_cb(GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *column, gpointer user_data) +static void on_row_activated_cb(GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *column, gpointer user_data) { - GtkTreeSelection *selection = gtk_tree_view_get_selection(tree_view); + GtkTreeSelection *selection = gtk_tree_view_get_selection(treeview); if (selection) { GtkTreeIter iter; - GtkTreeModel *dump_list_store = gtk_tree_view_get_model(tree_view); - gtk_tree_model_get_iter(dump_list_store, &iter, path); - GValue d_dir = { 0 }; - if (gtk_tree_selection_get_selected(selection, &dump_list_store, &iter) == TRUE) + GtkTreeModel *store = gtk_tree_view_get_model(treeview); + //gtk_tree_model_get_iter(store, &iter, path); + if (gtk_tree_selection_get_selected(selection, &store, &iter) == TRUE) { - gtk_tree_model_get_value(dump_list_store, &iter, COLUMN_DUMP_DIR, &d_dir); + GValue d_dir = { 0 }; + gtk_tree_model_get_value(store, &iter, COLUMN_DUMP_DIR, &d_dir); g_print("CALL: run_event(%s)\n", g_value_get_string(&d_dir)); } } } +static gint on_key_press_event_cb(GtkTreeView *treeview, GdkEventKey *key, gpointer unused) +{ + int k = key->keyval; + + if (k == GDK_Delete || k == GDK_KP_Delete) + { + GtkTreeSelection *selection = gtk_tree_view_get_selection(treeview); + if (selection) + { + GtkTreeIter iter; + GtkTreeModel *store = gtk_tree_view_get_model(treeview); + if (gtk_tree_selection_get_selected(selection, &store, &iter) == TRUE) + { + GValue d_dir = { 0 }; + gtk_tree_model_get_value(store, &iter, COLUMN_DUMP_DIR, &d_dir); + g_print("CALL: del_event(%s)\n", g_value_get_string(&d_dir)); + } + } + + return TRUE; + } + return FALSE; +} + static void add_columns(GtkTreeView *treeview) { GtkCellRenderer *renderer; @@ -156,7 +181,7 @@ GtkWidget *create_main_window(void) /* Double click/Enter handler */ g_signal_connect(treeview, "row-activated", G_CALLBACK(on_row_activated_cb), NULL); /* Delete handler */ - //g_signal_connect(treeview, "??????", G_CALLBACK(on_row_deleted_cb), NULL); + g_signal_connect(treeview, "key-press-event", G_CALLBACK(on_key_press_event_cb), NULL); /* Quit when user closes the main window */ g_signal_connect(main_window, "destroy", gtk_main_quit, NULL); |