diff --git a/XMonad/Actions/GridSelect.hs b/XMonad/Actions/GridSelect.hs index 1ba0aa63..b4e297d1 100644 --- a/XMonad/Actions/GridSelect.hs +++ b/XMonad/Actions/GridSelect.hs @@ -407,10 +407,11 @@ makeXEventhandler keyhandler = fix $ \me -> join $ liftX $ withDisplay $ \d -> l ev <- getEvent e if ev_event_type ev == keyPress then do - (ks,s) <- lookupString $ asKeyEvent e + (_, s) <- lookupString $ asKeyEvent e + ks <- keycodeToKeysym d (ev_keycode ev) 0 return $ do mask <- liftX $ cleanKeyMask <*> pure (ev_state ev) - keyhandler (fromMaybe xK_VoidSymbol ks, s, mask) + keyhandler (ks, s, mask) else return $ stdHandle ev me diff --git a/XMonad/Actions/TreeSelect.hs b/XMonad/Actions/TreeSelect.hs index 8727634e..43ef6e79 100644 --- a/XMonad/Actions/TreeSelect.hs +++ b/XMonad/Actions/TreeSelect.hs @@ -533,11 +533,11 @@ navigate = gets tss_display >>= \d -> join . liftIO . allocaXEvent $ \e -> do ev <- getEvent e if | ev_event_type ev == keyPress -> do - (ks, _) <- lookupString $ asKeyEvent e + ks <- keycodeToKeysym d (ev_keycode ev) 0 return $ do mask <- liftX $ cleanKeyMask <*> pure (ev_state ev) f <- asks ts_navigate - fromMaybe navigate $ M.lookup (mask, fromMaybe xK_VoidSymbol ks) f + fromMaybe navigate $ M.lookup (mask, ks) f | ev_event_type ev == buttonPress -> do -- See XMonad.Prompt Note [Allow ButtonEvents] allowEvents d replayPointer currentTime diff --git a/XMonad/Prompt.hs b/XMonad/Prompt.hs index 8513f6d6..ce29663d 100644 --- a/XMonad/Prompt.hs +++ b/XMonad/Prompt.hs @@ -637,10 +637,11 @@ eventLoop handle stopAction = do -- Also capture @buttonPressMask@, see Note [Allow ButtonEvents] maskEvent d (exposureMask .|. keyPressMask .|. buttonPressMask) e ev <- getEvent e - (ks,s) <- if ev_event_type ev == keyPress - then lookupString $ asKeyEvent e - else return (Nothing, "") - return (fromMaybe xK_VoidSymbol ks,s,ev) + if ev_event_type ev == keyPress + then do (_, s) <- lookupString $ asKeyEvent e + ks <- keycodeToKeysym d (ev_keycode ev) 0 + return (ks, s, ev) + else return (noSymbol, "", ev) l -> do modify $ \s -> s { eventBuffer = tail l } return $ head l