Refuse to bind letter keys without a modifier (Closes: #86956)
2006-01-22 Bastien Nocera <hadess@hadess.net> * gnome-keybinding-properties.c: (accel_edited_callback): Refuse to bind letter keys without a modifier (Closes: #86956)
This commit is contained in:
parent
f2bd50a8a5
commit
c7b0d35b2f
2 changed files with 43 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2006-01-22 Bastien Nocera <hadess@hadess.net>
|
||||||
|
|
||||||
|
* gnome-keybinding-properties.c: (accel_edited_callback):
|
||||||
|
Refuse to bind letter keys without a modifier (Closes: #86956)
|
||||||
|
|
||||||
2006-01-11 Sebastien Bacher <seb128@debian.org>
|
2006-01-11 Sebastien Bacher <seb128@debian.org>
|
||||||
|
|
||||||
* gnome-keybinding-properties.c:
|
* gnome-keybinding-properties.c:
|
||||||
|
|
|
@ -645,6 +645,44 @@ accel_edited_callback (GtkCellRendererText *cell,
|
||||||
(GtkTreeModelForeachFunc) cb_check_for_uniqueness,
|
(GtkTreeModelForeachFunc) cb_check_for_uniqueness,
|
||||||
&tmp_key);
|
&tmp_key);
|
||||||
|
|
||||||
|
/* Check for unmodified keys */
|
||||||
|
if (tmp_key.mask == 0 && tmp_key.keycode != 0)
|
||||||
|
{
|
||||||
|
if ((tmp_key.keyval >= GDK_a && tmp_key.keyval <= GDK_z)
|
||||||
|
|| (tmp_key.keyval >= GDK_A && tmp_key.keyval <= GDK_Z)
|
||||||
|
|| (tmp_key.keyval >= GDK_kana_fullstop && tmp_key.keyval <= GDK_kana_switch)
|
||||||
|
|| (tmp_key.keyval >= GDK_Arabic_comma && tmp_key.keyval <= GDK_Arabic_switch)
|
||||||
|
|| (tmp_key.keyval >= GDK_Serbian_dje && tmp_key.keyval <= GDK_Cyrillic_HARDSIGN)
|
||||||
|
|| (tmp_key.keyval >= GDK_Greek_ALPHAaccent && tmp_key.keyval <= GDK_Greek_switch)
|
||||||
|
|| (tmp_key.keyval >= GDK_hebrew_doublelowline && tmp_key.keyval <= GDK_Hebrew_switch)
|
||||||
|
|| (tmp_key.keyval >= GDK_Thai_kokai && tmp_key.keyval <= GDK_Thai_lekkao)
|
||||||
|
|| (tmp_key.keyval >= GDK_Hangul && tmp_key.keyval <= GDK_Hangul_J_YeorinHieuh)) {
|
||||||
|
GtkWidget *dialog;
|
||||||
|
char *name;
|
||||||
|
|
||||||
|
name = egg_virtual_accelerator_name (keyval, keycode, mask);
|
||||||
|
|
||||||
|
dialog =
|
||||||
|
gtk_message_dialog_new (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (view))),
|
||||||
|
GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL,
|
||||||
|
GTK_MESSAGE_WARNING,
|
||||||
|
GTK_BUTTONS_CANCEL,
|
||||||
|
_("The shortcut \"%s\" cannot be used because it will become unusable to type using this key.\n"
|
||||||
|
"Please try with a key such as Control, Alt or Shift at the same time.\n"),
|
||||||
|
name);
|
||||||
|
|
||||||
|
g_free (name);
|
||||||
|
gtk_dialog_run (GTK_DIALOG (dialog));
|
||||||
|
gtk_widget_destroy (dialog);
|
||||||
|
|
||||||
|
/* set it back to its previous value. */
|
||||||
|
egg_cell_renderer_keys_set_accelerator
|
||||||
|
(EGG_CELL_RENDERER_KEYS (cell),
|
||||||
|
key_entry->keyval, key_entry->keycode, key_entry->mask);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* flag to see if the new accelerator was in use by something */
|
/* flag to see if the new accelerator was in use by something */
|
||||||
if (!tmp_key.editable)
|
if (!tmp_key.editable)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue