commit b70948b74c19f916bc9e1a610ea1a2a215a54900
Author:     Maarten van Gompel <[email protected]>
AuthorDate: Sun Jul 11 17:53:42 2021 +0200
Commit:     Hiltjo Posthuma <[email protected]>
CommitDate: Mon Jul 12 12:33:39 2021 +0200

    exclude certain modifier keys and basic keys from being overlayed
    
    This ensures that modifiers like shift/ctrl can be correctly used with the 
overlay.

diff --git a/svkbd.c b/svkbd.c
index 875a0b5..be688b5 100644
--- a/svkbd.c
+++ b/svkbd.c
@@ -1052,7 +1052,13 @@ showoverlay(int idx)
                if (overlay[i].keysym == XK_Cancel) {
                        break;
                }
-               while (keys[j].keysym == 0)
+               //certain modifier keys and basic keys are excluded from being 
overlayed:
+               while (keys[j].keysym == 0 || keys[j].keysym == XK_Shift_L ||
+                               keys[j].keysym == XK_Shift_R || keys[j].keysym 
== XK_Control_L ||
+                               keys[j].keysym == XK_Control_R || 
keys[j].keysym == XK_Alt_L ||
+                               keys[j].keysym == XK_Alt_R || keys[j].keysym == 
XK_BackSpace ||
+                               keys[j].keysym == XK_Return || keys[j].keysym 
== XK_space ||
+                               keys[j].keysym == XK_Cancel)
                        j++;
                if (overlay[i].width > 1)
                        j += overlay[i].width - 1;

Reply via email to