Fix non-working Home and End keys on numpads.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4103 ea778897-0a13-0410-b9d1-a72fbfd435f5
This commit is contained in:
parent
6690fce2d9
commit
2403d3ade8
@ -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>
|
2009-08-17 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
|
||||||
|
|
||||||
* doc/geany.txt, doc/geany.html, NEWS:
|
* doc/geany.txt, doc/geany.html, NEWS:
|
||||||
|
|||||||
@ -4567,7 +4567,7 @@ static void setup_sci_keys(ScintillaObject *sci)
|
|||||||
sci_clear_cmdkey(sci, '\\' | (SCMOD_CTRL << 16)); /* Next word part */
|
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_UP | (SCMOD_CTRL << 16)); /* scroll line up */
|
||||||
sci_clear_cmdkey(sci, SCK_DOWN | (SCMOD_CTRL << 16)); /* scroll line down */
|
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); /* line end */
|
||||||
sci_clear_cmdkey(sci, SCK_END | (SCMOD_ALT << 16)); /* visual line end */
|
sci_clear_cmdkey(sci, SCK_END | (SCMOD_ALT << 16)); /* visual line end */
|
||||||
|
|
||||||
|
|||||||
@ -1077,6 +1077,37 @@ static gboolean check_vte(GdkModifierType state, guint keyval)
|
|||||||
#endif
|
#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 */
|
/* 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)
|
static gboolean on_key_press_event(GtkWidget *widget, GdkEventKey *ev, gpointer user_data)
|
||||||
{
|
{
|
||||||
@ -1101,6 +1132,9 @@ static gboolean on_key_press_event(GtkWidget *widget, GdkEventKey *ev, gpointer
|
|||||||
if (keyval >= GDK_A && keyval <= GDK_Z)
|
if (keyval >= GDK_A && keyval <= GDK_Z)
|
||||||
keyval += GDK_a - GDK_A;
|
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);*/
|
/*geany_debug("%d (%d) %d (%d)", keyval, ev->keyval, state, ev->state);*/
|
||||||
|
|
||||||
/* special cases */
|
/* special cases */
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user