SF.net SVN: geany:[4103] trunk
eht16 at users.sourceforge.net
eht16 at xxxxx
Mon Aug 17 22:04:13 UTC 2009
Revision: 4103
http://geany.svn.sourceforge.net/geany/?rev=4103&view=rev
Author: eht16
Date: 2009-08-17 22:04:13 +0000 (Mon, 17 Aug 2009)
Log Message:
-----------
Fix non-working Home and End keys on numpads.
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/editor.c
trunk/src/keybindings.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2009-08-17 15:07:59 UTC (rev 4102)
+++ trunk/ChangeLog 2009-08-17 22:04:13 UTC (rev 4103)
@@ -1,3 +1,9 @@
+2009-08-18 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+
+ * src/keybindings.c:
+ Fix non-working Home and End keys on numpads.
+
+
2009-08-17 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
* doc/geany.txt, doc/geany.html, NEWS:
Modified: trunk/src/editor.c
===================================================================
--- trunk/src/editor.c 2009-08-17 15:07:59 UTC (rev 4102)
+++ trunk/src/editor.c 2009-08-17 22:04:13 UTC (rev 4103)
@@ -4567,7 +4567,7 @@
sci_clear_cmdkey(sci, '\\' | (SCMOD_CTRL << 16)); /* Next word part */
sci_clear_cmdkey(sci, SCK_UP | (SCMOD_CTRL << 16)); /* scroll line up */
sci_clear_cmdkey(sci, SCK_DOWN | (SCMOD_CTRL << 16)); /* scroll line down */
- sci_clear_cmdkey(sci, SCK_HOME); /* line start */
+ sci_clear_cmdkey(sci, SCK_HOME); /* line start */
sci_clear_cmdkey(sci, SCK_END); /* line end */
sci_clear_cmdkey(sci, SCK_END | (SCMOD_ALT << 16)); /* visual line end */
Modified: trunk/src/keybindings.c
===================================================================
--- trunk/src/keybindings.c 2009-08-17 15:07:59 UTC (rev 4102)
+++ trunk/src/keybindings.c 2009-08-17 22:04:13 UTC (rev 4103)
@@ -1077,6 +1077,37 @@
#endif
+/* Map the keypad keys to their equivalent functions (taken from ScintillaGTK.cxx) */
+static guint key_kp_translate(guint key_in)
+{
+ switch (key_in)
+ {
+ case GDK_KP_Down:
+ return GDK_Down;
+ case GDK_KP_Up:
+ return GDK_Up;
+ case GDK_KP_Left:
+ return GDK_Left;
+ case GDK_KP_Right:
+ return GDK_Right;
+ case GDK_KP_Home:
+ return GDK_Home;
+ case GDK_KP_End:
+ return GDK_End;
+ case GDK_KP_Page_Up:
+ return GDK_Page_Up;
+ case GDK_KP_Page_Down:
+ return GDK_Page_Down;
+ case GDK_KP_Delete:
+ return GDK_Delete;
+ case GDK_KP_Insert:
+ return GDK_Insert;
+ default:
+ return key_in;
+ }
+}
+
+
/* central keypress event handler, almost all keypress events go to this function */
static gboolean on_key_press_event(GtkWidget *widget, GdkEventKey *ev, gpointer user_data)
{
@@ -1101,6 +1132,9 @@
if (keyval >= GDK_A && keyval <= GDK_Z)
keyval += GDK_a - GDK_A;
+ if (keyval >= GDK_KP_Space && keyval < GDK_KP_Equal)
+ keyval = key_kp_translate(keyval);
+
/*geany_debug("%d (%d) %d (%d)", keyval, ev->keyval, state, ev->state);*/
/* special cases */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list