summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gui.c122
1 files changed, 63 insertions, 59 deletions
diff --git a/gtk/gui.c b/gtk/gui.c
index 017057217..cd779bdce 100644
--- a/gtk/gui.c
+++ b/gtk/gui.c
@@ -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);
}
}