Skip to content

Initial version of GTK Wayland backend#205

Merged
mirek-fidler merged 36 commits into
masterfrom
klugier/gtk-wayland-initial-version
Feb 2, 2025
Merged

Initial version of GTK Wayland backend#205
mirek-fidler merged 36 commits into
masterfrom
klugier/gtk-wayland-initial-version

Conversation

@klugier
Copy link
Copy Markdown
Member

@klugier klugier commented Sep 22, 2024

This PR enable Wayland on GTK back-end. The Wayland is secondary back-end by default. It means that without launching it explicitly in Wayland session it won't be turn on. However running upp application with having set environemnt GDK_BACKEND=wayland should enable GTK Wayland backend in Wayland session for all Upp applications. Alternatively, I added flagWAYLAND which allows to force selection of GTK Wayland back-end once provided.

Other significant things done in this PR:

  • Support client side decorations (CSD). This is required for Wayland compositors that doesn't provide server side decorations (SSD). The good example of such compositor is Mutter (GNOME)

Things to implement in the future PR's:

  • Fix GetWorkArea(). GetWorkArea() should returns TopWindow size since the idea of GetWorkArea on Wayland doesn't exist. Fix in progress. However, this will require changes in U++ public API, so I would like to push it in separate PR.
  • Fix issue with popups. Popups should base on xdg_popup, it should be achieved with creating gtk_menu instead of creatign special window type

I tested this PR in various scenarios as sessions. However, the chance for regression is high. So, I highly recommend to merge these changes after release 2024.1. Also, please merge with squash option to make history clean.

Zbigniew Rębacz and others added 7 commits November 6, 2024 16:21
@mirek-fidler mirek-fidler merged commit 511ff1e into master Feb 2, 2025
@mirek-fidler mirek-fidler deleted the klugier/gtk-wayland-initial-version branch February 2, 2025 10:47
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.

2 participants