Revert “gui, qt: brintToFront workaround for Wayland” #914

pull hebasto wants to merge 1 commits into bitcoin-core:master from hebasto:251121-wayland changing 1 files +10 −17
  1. hebasto commented at 12:46 pm on November 21, 2025: member

    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.-

  2. Revert "gui, qt: brintToFront workaround for Wayland"
    This reverts commit 15aa7d023688700a47997b92108de95f2d864f5a.
    0672e727bf
  3. DrahtBot commented at 12:46 pm on November 21, 2025: contributor

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    Reviews

    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.

  4. hebasto commented at 12:49 pm on November 21, 2025: member
  5. diegoviola commented at 1:41 pm on November 21, 2025: contributor
    @hebasto ACK. Thanks for looking into this and for the revert. :+1:
  6. DrahtBot added the label CI failed on Nov 21, 2025
  7. benthecarman approved
  8. benthecarman commented at 12:58 pm on November 22, 2025: contributor
    fixes for me!
  9. maflcko commented at 2:37 pm on November 24, 2025: contributor

    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==
    
  10. hebasto merged this on Nov 24, 2025
  11. hebasto closed this on Nov 24, 2025

  12. pablomartin4btc commented at 3:24 pm on November 24, 2025: contributor

    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
    

    revert not working

  13. maflcko commented at 3:50 pm on November 24, 2025: contributor

    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:

    • Use a pre-compiled guix release
    • Use depends yourself
    • Upgrade your OS
    • Install/compile a more recent qt yourself and use that
    • …?
  14. pablomartin4btc commented at 4:12 pm on November 24, 2025: contributor

    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!

  15. diegoviola commented at 11:31 am on November 25, 2025: contributor

    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.

  16. pablomartin4btc commented at 7:58 pm on November 25, 2025: contributor

    The fix is in qt6.3, so this is expected. Your options are:

    0* Use depends yourself
    

    I 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
    

    revert not working - 6 10 0

    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
    
  17. diegoviola commented at 10:08 pm on November 25, 2025: contributor

    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.


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin-core/gui. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2025-11-27 22:20 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me