Index: gtk_conf_list.c =================================================================== --- gtk_conf_list.c (revision 1996) +++ gtk_conf_list.c (revision 1997) @@ -1,5 +1,6 @@ #include #include +#include #include "gtk_conf_list.h" static void rebuild(gtk_conf_list_t *cl) @@ -143,9 +144,28 @@ cl->editing = 0; } -gboolean key_release_cb(GtkWidget *widget, GdkEvent *event, gtk_conf_list_t *cl) +/* bind a few intuitive keys so that the list can be used without mouse */ +gboolean key_release_cb(GtkWidget *widget, GdkEventKey *event, gtk_conf_list_t *cl) { - printf("REL! %d\n", cl->editing); + unsigned short int kv = event->keyval; + if (cl->editing) + return FALSE; +/* printf("REL! %d %d\n", cl->editing, kv);*/ + switch(kv) { + case GDK_KEY_KP_Insert: + case GDK_KEY_Insert: + button_ins_cb(NULL, cl); + break; + case GDK_KEY_KP_Delete: + case GDK_KEY_Delete: + button_del_cb(NULL, cl); + break; + case 'c': + case 's': + if (cl->file_chooser_title != NULL) + button_sel_cb(NULL, cl); + break; + } } GtkWidget *gtk_conf_list_widget(gtk_conf_list_t *cl)