Skip to content
  • Martin Flöser's avatar
    Support modifier only shortcuts on X11 · 2c333417
    Martin Flöser authored
    Summary:
    With this change KWin/X11 reuses Wayland's modifier only shortcut
    architecture. The XInput2 event filter also listens for
     * XI_RawKeyPress
     * XI_RawKeyRelease
    
    Those events are also reported if another X11 client grabs keyboard
    input. Thus KWin gets all key events, just like on Wayland.
    
    All key events are then sent through the Xkb class which performs the
    mapping from key codes to key syms and is able to detect whether the
    modifier got pressed/released without another key being pressed.
    
    This change will require a few follow up changes, which are required
    also for Wayland:
     * ignore if another input device got interacted (e.g. mouse press,
       touch screen, scroll, etc)
     * use the layout from XServer instead of using our own (needed on
       Wayland in nested setup)
    
    The biggest disadvantage of the change is that it triggers a wake
    up of KWin on every key event. But as KWin already listens to all
    pointer events that's not a big difference and normally a key event
    will wake up the compositor any way.
    
    Reviewers: #plasma
    
    Subscribers: kwin
    
    Tags: #kwin
    
    Differential Revision: https://phabricator.kde.org/D2425
    2c333417