summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDenys Vlasenko <dvlasenk@redhat.com>2011-02-10 16:51:29 +0100
committerDenys Vlasenko <dvlasenk@redhat.com>2011-02-10 16:51:29 +0100
commit394508ab25eb2a78a40cde19714e9afa2537c393 (patch)
treeadeef30933886d69914d24941f7da3f233593609 /src
parentf8c0e544a905ba42c8b550409f492081534977f5 (diff)
downloadabrt-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.c41
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);