Summary: | Inconsistency in window activation under Wayland in multi-window applications. | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | Alexey Ivanov <krab4t> |
Component: | general | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED UPSTREAM | ||
Severity: | normal | CC: | jordan, xaver.hugl |
Priority: | NOR | ||
Version First Reported In: | 6.0.5 | ||
Target Milestone: | --- | ||
Platform: | Neon | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | activation example, cmake/Qt project |
IIRC, this bug also existed in KDE 6.0 when it landed in Neon User Edition. Also happens in Fedora 40 with KDE6 manually installed from official repository. In VirtualBox. This is a bug in Qt, not in Plasma - it re-uses the activation token environment variable instead of requesting a new token It should be fixed with https://codereview.qt-project.org/c/qt/qtwayland/+/519444, which activates the main window on show and thus clears the environment variable. > Qt 6.8 release plan
> Final Release 25.09.2024
Holly Molly it will take ONE YEAR for fix to land into Linux distributives.
|
Created attachment 169836 [details] activation example, cmake/Qt project SUMMARY KDE 6 Wayland xdg_activation protocol implementation is inconsistent. Let's say developer want to create a multi-window application, using 3 QMainWindow. CASE 1: When you create QMainWindow -> showMinimized() -> activateWindow() never works in first call, only second try starts working. This is a bug! CASE 2: When you create QMainWindow -> show(), then switching to that new window, resize it, and try to activateWindow() also never works in first try, only second. This is also a bug! When you create minimized window first and then normal one (or vice versa, doesn't matter) then both activateWindow works. STEPS TO REPRODUCE CASE 1: 1. Run activation-example from archive attached. 2. Click Show Minimized 3. Click Try Activate Minimized 4. Window won't get activated and still minimized on taskbar. STEPS TO REPRODUCE CASE 2: 1. Run activation-example from archive attached. 2. Click Show Normal 3. Click on that newly showed window. 4. Move it and resize it. 5. Click on example window with 4 buttons. 6. Also move it and resize it. 7. Click on Try Activate Normal 8. Window won't get activated. Linux: KDE Neon Testin Edition KDE Plasma Version: 6.0.5 KDE Frameworks Version: 6.3.0 Qt Version: 6.7.0