• Martin Flöser's avatar
    [wayland] Use a dummy window for QtWayland's popup window handling · 29c2ae57
    Martin Flöser authored
    QtWayland only creates popup windows if they have a parent QWindow or
    if there is any window which had input. It's not enough to fake an
    enter, it needs to be either a pointer button press or key press.
    
    As KWin's useraction menu doesn't have a parent and we most likely
    never send a pointer press to any QWindow it doesn't get shown. To
    circumvent this we create a dummy window and fake a button press/release
    on the window. After that Qt is tricked into believing there's a parent
    window and shows the popup.
    
    Faking the input is only done with at least Qt 5.5 as QtWayland crashes
    on pointer event without a keymap being installed. As KWin does not yet
    send keymaps we better disable the dangerous code path. With Qt 5.5 the
    crash condition is fixed.
    29c2ae57
wayland_server.cpp 7.76 KB