From 314fc15bdda0617502c7c1deafc715e04806e4fa Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Sat, 4 Aug 2007 23:11:42 +0000 Subject: [PATCH] reviewed by: Jens Granseuer 2007-08-05 Bastien Nocera reviewed by: Jens Granseuer * gnome-keybinding-properties.c: (keyval_is_forbidden), (accel_edited_callback): Make the arrows and tabs unbindable without a modifier (Closes: #463433) svn path=/trunk/; revision=7962 --- capplets/keybindings/ChangeLog | 8 +++++ .../keybindings/gnome-keybinding-properties.c | 36 +++++++++++++++++-- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/capplets/keybindings/ChangeLog b/capplets/keybindings/ChangeLog index 69c0837ac..47bd7920c 100644 --- a/capplets/keybindings/ChangeLog +++ b/capplets/keybindings/ChangeLog @@ -1,3 +1,11 @@ +2007-08-05 Bastien Nocera + + reviewed by: Jens Granseuer + + * gnome-keybinding-properties.c: (keyval_is_forbidden), + (accel_edited_callback): Make the arrows and tabs unbindable + without a modifier (Closes: #463433) + 2007-06-14 Jens Granseuer * gnome-keybinding-properties.c: (setup_dialog): fix GConf diff --git a/capplets/keybindings/gnome-keybinding-properties.c b/capplets/keybindings/gnome-keybinding-properties.c index 5e943f8a2..912382dde 100644 --- a/capplets/keybindings/gnome-keybinding-properties.c +++ b/capplets/keybindings/gnome-keybinding-properties.c @@ -809,6 +809,39 @@ cb_check_for_uniqueness (GtkTreeModel *model, return TRUE; } +static const guint forbidden_keyvals[] = { + /* Navigation keys */ + GDK_Home, + GDK_Left, + GDK_Up, + GDK_Right, + GDK_Down, + GDK_Page_Up, + GDK_Page_Down, + GDK_End, + GDK_Tab, + + /* Return */ + GDK_KP_Enter, + GDK_Return, + + GDK_space, + GDK_Mode_switch +}; + +static gboolean +keyval_is_forbidden (guint keyval) +{ + guint i; + + for (i = 0; i < G_N_ELEMENTS(forbidden_keyvals); i++) { + if (keyval == forbidden_keyvals[i]) + return TRUE; + } + + return FALSE; +} + static void accel_edited_callback (GtkCellRendererText *cell, const char *path_string, @@ -868,8 +901,7 @@ accel_edited_callback (GtkCellRendererText *cell, || (tmp_key.keyval >= GDK_Thai_kokai && tmp_key.keyval <= GDK_Thai_lekkao) || (tmp_key.keyval >= GDK_Hangul && tmp_key.keyval <= GDK_Hangul_Special) || (tmp_key.keyval >= GDK_Hangul_Kiyeog && tmp_key.keyval <= GDK_Hangul_J_YeorinHieuh) - || tmp_key.keyval == GDK_space || tmp_key.keyval == GDK_Return - || tmp_key.keyval == GDK_Mode_switch) { + || keyval_is_forbidden (tmp_key.keyval)) { GtkWidget *dialog; char *name;