Skip to content

VPN-7529: Missing window decorations on GNOME+Wayland#11220

Merged
encrypt94 merged 2 commits intomainfrom
VPN-7529-window-has-no-border-gnome-wayland
Apr 22, 2026
Merged

VPN-7529: Missing window decorations on GNOME+Wayland#11220
encrypt94 merged 2 commits intomainfrom
VPN-7529-window-has-no-border-gnome-wayland

Conversation

@encrypt94
Copy link
Copy Markdown
Collaborator

Description

GNOME / Mutter does not support server-side window decorations https://gitlab.gnome.org/GNOME/mutter/-/issues/217 so after the introduction of qtwayland plugin we lost them.

Lacking of window decoration is a common issue for qt applications on GNOME, this causes a problem in the light theme: the window blends into the white background due to the absence of shadows (also the window looks ugly)

Screenshot from 2026-04-20 19-21-52

This PR introduces the QWaylandAdwaitaDecorationPlugin to provide Adwaita-style window decorations (rounded corners, nice title bar coherent with system theme). It also includes a patch to draw shiny shadows, which is not yet supported by the plugin itself (even in the Qt dev branch).

MozillaVPN client vs gnome calculator

active windows
focused

non active windows
not-focused

Reference

Jira Issue

Checklist

  • My code follows the style guidelines for this project
  • I have not added any packages that contain high risk or unknown licenses (GPL, LGPL, MPL, etc. consult with DevOps if in question)
  • I have performed a self review of my own code
  • I have commented my code PARTICULARLY in hard to understand areas
  • I have added thorough tests where needed

@encrypt94 encrypt94 requested a review from oskirby April 20, 2026 17:28
@encrypt94 encrypt94 requested a review from a team as a code owner April 20, 2026 17:28
@encrypt94 encrypt94 requested review from abhishekmadan30 and removed request for a team April 20, 2026 17:28
@encrypt94 encrypt94 changed the title VPN-7529: Window has no border gnome wayland VPN-7529: Missing window decorations on GNOME+Wayland Apr 20, 2026
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Neat! Did you write it yourself? If so, are you planning to upstream that?
If not, can we add an error when compiling the Qt with it's Planned Fix version, so we can revisit this?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, wrote it myself! i'll try to upstream it!

Copy link
Copy Markdown
Collaborator

@strseb strseb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wow, nice!

@firefoxci-taskcluster
Copy link
Copy Markdown

Uh oh! Looks like an error!

Client ID static/taskcluster/github does not have sufficient scopes and is missing the following scopes:

{
  "AnyOf": [
    "queue:rerun-task:mozillavpn-level-1/cI4NotVySoqPKB4Jk8oCFg/C95s6naIQXSW2tWZWUET4Q",
    "queue:rerun-task-in-project:none",
    {
      "AllOf": [
        "queue:rerun-task",
        "assume:scheduler-id:mozillavpn-level-1/cI4NotVySoqPKB4Jk8oCFg"
      ]
    }
  ]
}

This request requires the client to satisfy the following scope expression:

{
  "AnyOf": [
    "queue:rerun-task:mozillavpn-level-1/cI4NotVySoqPKB4Jk8oCFg/C95s6naIQXSW2tWZWUET4Q",
    "queue:rerun-task-in-project:none",
    {
      "AllOf": [
        "queue:rerun-task",
        "assume:scheduler-id:mozillavpn-level-1/cI4NotVySoqPKB4Jk8oCFg"
      ]
    }
  ]
}

  • method: rerunTask
  • errorCode: InsufficientScopes
  • statusCode: 403
  • time: 2026-04-21T12:46:45.037Z

Copy link
Copy Markdown
Collaborator

@oskirby oskirby left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this looks good.

@firefoxci-taskcluster
Copy link
Copy Markdown

Uh oh! Looks like an error!

Client ID static/taskcluster/github does not have sufficient scopes and is missing the following scopes:

{
  "AnyOf": [
    "queue:rerun-task:mozillavpn-level-1/cI4NotVySoqPKB4Jk8oCFg/C95s6naIQXSW2tWZWUET4Q",
    "queue:rerun-task-in-project:none",
    {
      "AllOf": [
        "queue:rerun-task",
        "assume:scheduler-id:mozillavpn-level-1/cI4NotVySoqPKB4Jk8oCFg"
      ]
    }
  ]
}

This request requires the client to satisfy the following scope expression:

{
  "AnyOf": [
    "queue:rerun-task:mozillavpn-level-1/cI4NotVySoqPKB4Jk8oCFg/C95s6naIQXSW2tWZWUET4Q",
    "queue:rerun-task-in-project:none",
    {
      "AllOf": [
        "queue:rerun-task",
        "assume:scheduler-id:mozillavpn-level-1/cI4NotVySoqPKB4Jk8oCFg"
      ]
    }
  ]
}

  • method: rerunTask
  • errorCode: InsufficientScopes
  • statusCode: 403
  • time: 2026-04-22T12:25:51.159Z

@encrypt94 encrypt94 merged commit 52730dc into main Apr 22, 2026
158 of 160 checks passed
@encrypt94 encrypt94 deleted the VPN-7529-window-has-no-border-gnome-wayland branch April 22, 2026 12:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants