Clean Xkb masks in X.A.Submap

Xkb adds its own mask and prevent Submap keybindings from normal
functioning when alternate layout is used. This patch cleans
these masks.
This commit is contained in:
Khudyakov Alexey 2009-06-23 16:46:53 +00:00
parent fdaeaa18de
commit c884dbb74b

View File

@ -18,7 +18,7 @@ module XMonad.Actions.Submap (
submap, submap,
submapDefault submapDefault
) where ) where
import Data.Bits
import XMonad hiding (keys) import XMonad hiding (keys)
import qualified Data.Map as M import qualified Data.Map as M
import Control.Monad.Fix (fix) import Control.Monad.Fix (fix)
@ -74,8 +74,8 @@ submapDefault def keys = do
if isModifierKey keysym if isModifierKey keysym
then nextkey then nextkey
else return (m, keysym) else return (m, keysym)
-- Remove num lock mask and Xkb group state bits
m' <- cleanMask m m' <- cleanMask $ m .&. ((1 `shiftL` 12) - 1)
maybe def id (M.lookup (m', s) keys) maybe def id (M.lookup (m', s) keys)
io $ ungrabKeyboard d currentTime io $ ungrabKeyboard d currentTime