From e0805f785b37378b269ae5f828ea59c63c835f24 Mon Sep 17 00:00:00 2001 From: David Yu Yang Date: Wed, 21 Jul 2021 14:34:13 +0800 Subject: [PATCH 1/4] Work with numlock on --- geanynumberedbookmarks/src/geanynumberedbookmarks.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geanynumberedbookmarks/src/geanynumberedbookmarks.c b/geanynumberedbookmarks/src/geanynumberedbookmarks.c index 75a28d2e4..22efba03b 100644 --- a/geanynumberedbookmarks/src/geanynumberedbookmarks.c +++ b/geanynumberedbookmarks/src/geanynumberedbookmarks.c @@ -1464,7 +1464,7 @@ static gboolean Key_Released_CallBack(GtkWidget *widget, GdkEventKey *ev, gpoint return TRUE; } /* control+shift+number */ - if(ev->state==5) { + if(ev->state==5 || ev->state==21) { /* could use hardware keycode instead of keyvals but if unable to get keyode then don't * have logical default to fall back on */ From 000a4848b8b7ece72084ed2e7fdbe737f9766a35 Mon Sep 17 00:00:00 2001 From: David Yu Yang Date: Wed, 21 Jul 2021 16:43:06 +0800 Subject: [PATCH 2/4] Use GDK bitmasks --- .../src/geanynumberedbookmarks.c | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/geanynumberedbookmarks/src/geanynumberedbookmarks.c b/geanynumberedbookmarks/src/geanynumberedbookmarks.c index 22efba03b..8ae77c151 100644 --- a/geanynumberedbookmarks/src/geanynumberedbookmarks.c +++ b/geanynumberedbookmarks/src/geanynumberedbookmarks.c @@ -1452,19 +1452,8 @@ static gboolean Key_Released_CallBack(GtkWidget *widget, GdkEventKey *ev, gpoint if(ev->type!=GDK_KEY_RELEASE) return FALSE; - - /* control and number pressed */ - if(ev->state==4) - { - i=((gint)(ev->keyval))-'0'; - if(i<0 || i>9) - return FALSE; - - GotoBookMark(doc, i); - return TRUE; - } /* control+shift+number */ - if(ev->state==5 || ev->state==21) { + if(ev->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK)) { /* could use hardware keycode instead of keyvals but if unable to get keyode then don't * have logical default to fall back on */ @@ -1475,6 +1464,16 @@ static gboolean Key_Released_CallBack(GtkWidget *widget, GdkEventKey *ev, gpoint } } + /* control and number pressed */ + if(ev->state & GDK_CONTROL_MASK) + { + i=((gint)(ev->keyval))-'0'; + if(i<0 || i>9) + return FALSE; + + GotoBookMark(doc, i); + return TRUE; + } return FALSE; } From 5f59a76c7dfddb09eda39efbc62f603cbf2f1268 Mon Sep 17 00:00:00 2001 From: David Yu Yang Date: Thu, 22 Jul 2021 08:34:54 +0800 Subject: [PATCH 3/4] Fix shift/ctrl check --- .../src/geanynumberedbookmarks.c | 29 +++++++++---------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/geanynumberedbookmarks/src/geanynumberedbookmarks.c b/geanynumberedbookmarks/src/geanynumberedbookmarks.c index 8ae77c151..dfc424c88 100644 --- a/geanynumberedbookmarks/src/geanynumberedbookmarks.c +++ b/geanynumberedbookmarks/src/geanynumberedbookmarks.c @@ -1453,26 +1453,25 @@ static gboolean Key_Released_CallBack(GtkWidget *widget, GdkEventKey *ev, gpoint if(ev->type!=GDK_KEY_RELEASE) return FALSE; /* control+shift+number */ - if(ev->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK)) { + if(ev->state & GDK_CONTROL_MASK) { /* could use hardware keycode instead of keyvals but if unable to get keyode then don't * have logical default to fall back on */ - for(i=0;i<10;i++) if((gint)(ev->keyval)==iShiftNumbers[i]) - { - SetBookMark(doc, i); + if(ev->state & GDK_SHIFT_MASK) { + for(i=0;i<10;i++) if((gint)(ev->keyval)==iShiftNumbers[i]) + { + SetBookMark(doc, i); + return TRUE; + } + } else { + /* control and number pressed */ + i=((gint)(ev->keyval))-'0'; + if(i<0 || i>9) + return FALSE; + + GotoBookMark(doc, i); return TRUE; } - - } - /* control and number pressed */ - if(ev->state & GDK_CONTROL_MASK) - { - i=((gint)(ev->keyval))-'0'; - if(i<0 || i>9) - return FALSE; - - GotoBookMark(doc, i); - return TRUE; } return FALSE; From 8a28a1354cf0d11a4ff31420dcbd0b2c12df5faa Mon Sep 17 00:00:00 2001 From: David Yu Yang Date: Sat, 24 Jul 2021 10:13:08 +0800 Subject: [PATCH 4/4] Fix comments to match flow --- geanynumberedbookmarks/src/geanynumberedbookmarks.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/geanynumberedbookmarks/src/geanynumberedbookmarks.c b/geanynumberedbookmarks/src/geanynumberedbookmarks.c index dfc424c88..a30b62a5d 100644 --- a/geanynumberedbookmarks/src/geanynumberedbookmarks.c +++ b/geanynumberedbookmarks/src/geanynumberedbookmarks.c @@ -1452,12 +1452,13 @@ static gboolean Key_Released_CallBack(GtkWidget *widget, GdkEventKey *ev, gpoint if(ev->type!=GDK_KEY_RELEASE) return FALSE; - /* control+shift+number */ + /* control pressed */ if(ev->state & GDK_CONTROL_MASK) { /* could use hardware keycode instead of keyvals but if unable to get keyode then don't * have logical default to fall back on */ if(ev->state & GDK_SHIFT_MASK) { + /* shift pressed */ for(i=0;i<10;i++) if((gint)(ev->keyval)==iShiftNumbers[i]) { SetBookMark(doc, i);