diff --git a/source/rofi.c b/source/rofi.c index 43e2c2b7..b5bf0387 100644 --- a/source/rofi.c +++ b/source/rofi.c @@ -1496,7 +1496,6 @@ MenuReturn menu ( Switcher *sw, char **input, char *prompt, unsigned int *select KeySym key; // = XkbKeycodeToKeysym ( display, ev.xkey.keycode, 0, 0 ); int len = Xutf8LookupString ( xic, &( ev.xkey ), pad, sizeof ( pad ), &key, &stat ); pad[len] = 0; - if ( stat == XLookupKeySym || stat == XLookupBoth ) { // Handling of paste if ( abe_test_action ( PASTE_PRIMARY, ev.xkey.state, key ) ) { diff --git a/source/x11-helper.c b/source/x11-helper.c index b8957bd7..1c6bb738 100644 --- a/source/x11-helper.c +++ b/source/x11-helper.c @@ -420,7 +420,21 @@ static void x11_figure_out_numlock_mask ( Display *display ) // Combined mask, without NumLock CombinedMask = ShiftMask | MetaLMask | MetaRMask | AltMask | AltRMask | SuperRMask | SuperLMask | HyperLMask | HyperRMask | ControlMask; - CombinedMask |= Mod1Mask | Mod2Mask | Mod3Mask | Mod4Mask | Mod5Mask; + if ( Mod1Mask != NumlockMask ) { + CombinedMask |= Mod1Mask; + } + if ( Mod2Mask != NumlockMask ) { + CombinedMask |= Mod2Mask; + } + if ( Mod3Mask != NumlockMask ) { + CombinedMask |= Mod3Mask; + } + if ( Mod4Mask != NumlockMask ) { + CombinedMask |= Mod4Mask; + } + if ( Mod5Mask != NumlockMask ) { + CombinedMask |= Mod5Mask; + } XFreeModifiermap ( modmap ); }