diff options
author | Vincent Sanders <vince@netsurf-browser.org> | 2011-03-12 19:02:58 +0000 |
---|---|---|
committer | Vincent Sanders <vince@netsurf-browser.org> | 2011-03-12 19:02:58 +0000 |
commit | 0fd2523f5fc756e8a4cf5cff9d9e3fea6d69971f (patch) | |
tree | 9ce27fb5821c12e01ebd5ef3580e496d52cff9ed | |
parent | a0d7e79c8c1548e9f9747b00b321a09511e3d101 (diff) | |
download | netsurf-0fd2523f5fc756e8a4cf5cff9d9e3fea6d69971f.tar.gz netsurf-0fd2523f5fc756e8a4cf5cff9d9e3fea6d69971f.tar.bz2 |
make tab work in forms on gtk
svn path=/trunk/netsurf/; revision=11982
-rw-r--r-- | gtk/gui.c | 122 |
1 files changed, 63 insertions, 59 deletions
@@ -950,67 +950,71 @@ uint32_t gtk_gui_gdkkey_to_nskey(GdkEventKey *key) * everything that the RISC OS version does. But this will do for * now. I hope. */ - switch (key->keyval) - { - case GDK_BackSpace: - if (key->state & GDK_SHIFT_MASK) - return KEY_DELETE_LINE_START; - else - return KEY_DELETE_LEFT; - case GDK_Delete: - if (key->state & GDK_SHIFT_MASK) - return KEY_DELETE_LINE_END; - else - return KEY_DELETE_RIGHT; - case GDK_Linefeed: return 13; - case GDK_Return: return 10; - case GDK_Left: return KEY_LEFT; - case GDK_Right: return KEY_RIGHT; - case GDK_Up: return KEY_UP; - case GDK_Down: return KEY_DOWN; - case GDK_Home: - if (key->state & GDK_CONTROL_MASK) - return KEY_TEXT_START; - else - return KEY_LINE_START; - case GDK_End: - if (key->state & GDK_CONTROL_MASK) - return KEY_TEXT_END; - else - return KEY_LINE_END; - case GDK_Page_Up: - return KEY_PAGE_UP; - case GDK_Page_Down: - return KEY_PAGE_DOWN; - case 'a': - if (key->state & GDK_CONTROL_MASK) - return KEY_SELECT_ALL; - return gdk_keyval_to_unicode(key->keyval); - case 'u': - if (key->state & GDK_CONTROL_MASK) - return KEY_CLEAR_SELECTION; - return gdk_keyval_to_unicode(key->keyval); - case GDK_Escape: - return KEY_ESCAPE; + switch (key->keyval) { + + case GDK_Tab: + return KEY_TAB; + + case GDK_BackSpace: + if (key->state & GDK_SHIFT_MASK) + return KEY_DELETE_LINE_START; + else + return KEY_DELETE_LEFT; + case GDK_Delete: + if (key->state & GDK_SHIFT_MASK) + return KEY_DELETE_LINE_END; + else + return KEY_DELETE_RIGHT; + case GDK_Linefeed: return 13; + case GDK_Return: return 10; + case GDK_Left: return KEY_LEFT; + case GDK_Right: return KEY_RIGHT; + case GDK_Up: return KEY_UP; + case GDK_Down: return KEY_DOWN; + case GDK_Home: + if (key->state & GDK_CONTROL_MASK) + return KEY_TEXT_START; + else + return KEY_LINE_START; + case GDK_End: + if (key->state & GDK_CONTROL_MASK) + return KEY_TEXT_END; + else + return KEY_LINE_END; + case GDK_Page_Up: + return KEY_PAGE_UP; + case GDK_Page_Down: + return KEY_PAGE_DOWN; + case 'a': + if (key->state & GDK_CONTROL_MASK) + return KEY_SELECT_ALL; + return gdk_keyval_to_unicode(key->keyval); + case 'u': + if (key->state & GDK_CONTROL_MASK) + return KEY_CLEAR_SELECTION; + return gdk_keyval_to_unicode(key->keyval); + case GDK_Escape: + return KEY_ESCAPE; /* Modifiers - do nothing for now */ - case GDK_Shift_L: - case GDK_Shift_R: - case GDK_Control_L: - case GDK_Control_R: - case GDK_Caps_Lock: - case GDK_Shift_Lock: - case GDK_Meta_L: - case GDK_Meta_R: - case GDK_Alt_L: - case GDK_Alt_R: - case GDK_Super_L: - case GDK_Super_R: - case GDK_Hyper_L: - case GDK_Hyper_R: return 0; - - default: return gdk_keyval_to_unicode( - key->keyval); + case GDK_Shift_L: + case GDK_Shift_R: + case GDK_Control_L: + case GDK_Control_R: + case GDK_Caps_Lock: + case GDK_Shift_Lock: + case GDK_Meta_L: + case GDK_Meta_R: + case GDK_Alt_L: + case GDK_Alt_R: + case GDK_Super_L: + case GDK_Super_R: + case GDK_Hyper_L: + case GDK_Hyper_R: + return 0; + + default: + return gdk_keyval_to_unicode(key->keyval); } } |