This PR reverts a Wayland-specific workaround introduced in #831, which appears to break the UI, as reported in:
An alternative to #904, as suggested in #904 (review).
Fixes #903.-
This PR reverts a Wayland-specific workaround introduced in #831, which appears to break the UI, as reported in:
An alternative to #904, as suggested in #904 (review).
Fixes #903.-
This reverts commit 15aa7d023688700a47997b92108de95f2d864f5a.
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
See the guideline for information on the review process.
| Type | Reviewers |
|---|---|
| ACK | maflcko |
| Concept ACK | diegoviola |
If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.
Instead of linking to a bunch of threads, it could make sense to just say that the issue has been fixed upstream in Qt6, so that the workaround is no longer needed?
Ref: https://codereview.qt-project.org/c/qt/qtwayland/+/418094
lgtm, but I haven’t tested this.
review ACK 0672e727bf1db5995562e9656d18b699aeba5fe0 🎩
Signature:
0untrusted comment: signature from minisign secret key on empty file; verify via: minisign -Vm "${path_to_any_empty_file}" -P RWTRmVTMeKV5noAMqVlsMugDDCyyTSbA3Re5AkUrhvLVln0tSaFWglOw -x "${path_to_this_whole_four_line_signature_blob}"
1RUTRmVTMeKV5npGrKx1nqXCw5zeVHdtdYURB/KlyA/LMFgpNCs+SkW9a8N95d+U4AP1RJMi+krxU1A3Yux4bpwZNLvVBKy0wLgM=
2trusted comment: review ACK 0672e727bf1db5995562e9656d18b699aeba5fe0 🎩
3mLcfYNXw7VUaTvg8EA1PF+1b8DFaUoAZkxtJNIWfQNzFg5JtmxBqbSgV5We47nl6KrWrUfxDkQH1yCi8oglpAA==
tested 0672e727bf1db5995562e9656d18b699aeba5fe0
(there’s a typo on both the PR and commit titles.. brint -> bring)
02025-11-24T15:08:07Z Bitcoin Core version v30.99.0-0672e727bf1d (release build)
12025-11-24T15:08:07Z Qt 6.2.4 (dynamic), plugin=wayland
22025-11-24T15:08:07Z No static plugins.
32025-11-24T15:08:07Z Style: fusion / QFusionStyle
42025-11-24T15:08:07Z System: Ubuntu 22.04.5 LTS, x86_64-little_endian-lp64
The revert doesn’t work for me on wayland (Qt v6.2.4 - Ubuntu 22.04.5 LTS), the window doesn’t come back to front as it does when
plugin=xcb.
The fix is in qt6.3, so this is expected. Your options are:
The fix is in qt6.3, so this is expected. Your options are:
* Use depends yourself
I think I tried that before… I’ll check it again, thanks!
Instead of linking to a bunch of threads, it could make sense to just say that the issue has been fixed upstream in Qt6, so that the workaround is no longer needed?
The Qt::WindowStaysOnTopHint workaround was never going to work on Wayland. Clients don’t get to dictate whether they stay on top or not. The compositor does, and you (the user) are supposed to control the compositor through configuration. This is a fundamental difference that a lot of people don’t seem to understand.
It seems like the workaround was added for #817 but curiously enough this has been working fine. If all you want to do is raise a window just call activateWindow() which is what GUIUtil::bringToFront already does.
So yeah, just upgrade your software and things will work better.
The fix is in qt6.3, so this is expected. Your options are:
0* Use depends yourselfI think I tried that before… I’ll check it again, thanks!
Sorry, that (building depends) uses xcb… and that works well.
02025-11-25T19:22:58Z Bitcoin Core version v30.99.0-0672e727bf1d (release build)
12025-11-25T19:22:58Z Qt 6.10.0 (dynamic), plugin=wayland
22025-11-25T19:22:58Z Static plugins:
32025-11-25T19:22:58Z QICNSPlugin, version 395776
42025-11-25T19:22:58Z QTgaPlugin, version 395776
52025-11-25T19:22:58Z QTiffPlugin, version 395776
62025-11-25T19:22:58Z QWbmpPlugin, version 395776
72025-11-25T19:22:58Z QWebpPlugin, version 395776
82025-11-25T19:22:58Z Style: fusion / QFusionStyle
92025-11-25T19:22:58Z System: Ubuntu 22.04.5 LTS, x86_64-little_endian-lp64
02025-11-25T18:02:02Z Bitcoin Core version v30.99.0-0672e727bf1d (release build)
12025-11-25T18:02:02Z Qt 6.3.2 (dynamic), plugin=wayland
22025-11-25T18:02:02Z No static plugins.
32025-11-25T18:02:02Z Style: fusion / QFusionStyle
42025-11-25T18:02:02Z System: Ubuntu 22.04.5 LTS, x86_64-little_endian-lp64
Built correctly from source both Qt 6.3.2 and 6.10.0, and bringToFront doesn’t work on either of them using Wayland. 2025-11-25T19:22:58Z System: Ubuntu 22.04.5 LTS, x86_64-little_endian-lp64
That’s because Mutter on that GNOME version doesn’t support the XDG activation protocol. Which is the protocol used by clients to request activation of surfaces.
GUIUtil::bringToFront uses activateWindow() which uses the XDG activation protocol to communicate with the compositor.
xdg_activation_v1 is supported since Mutter 48.0, so you probably want to upgrade to Ubuntu 25.04.