Skip to content

Conversation

timon-schelling
Copy link
Member

@timon-schelling timon-schelling commented Sep 16, 2025

Needs #3177

Closes #3189 (needs testing on X11 #3190)

This PR adds support for window resize controls on Wayland compositors that allow disabling the standard server-side window frame (i.e., when client-side decorations are enabled).

Resize controls: Implemented for all compositors that support client-side decorations.

Fallback behavior: On compositors that force server-side decorations (e.g. tiling WMs like Hyprland, Sway, etc.), we skip drawing resize borders and shadows. Since these would otherwise render inside the compositor’s frame, we delegate resizing entirely to the compositor.

No duplicate titlebars: In testing, compositors either support client-side decorations or omit drawing their own titlebar. This ensures we don’t end up with a double titlebar when rendering our own decorations.

Note: This relies on two pending PRs in winit. Until they are merged, we temporarily depend on my fork of winit.

rust-windowing/winit#4357
rust-windowing/winit#4361

2025-09-16.12-31-58.mp4

@timon-schelling timon-schelling requested review from Copilot and TrueDoctor and removed request for Copilot September 16, 2025 13:28
@Keavon Keavon changed the title Desktop: Window resize controls wayland Desktop: Enable window resize controls on Wayland compositors Sep 16, 2025
Base automatically changed from desktop-use-unstable-winit to master September 17, 2025 12:16
Copy link
Member

@TrueDoctor TrueDoctor left a comment

Choose a reason for hiding this comment

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

Alright, let's hope we don't have to use a fork for too long

@timon-schelling
Copy link
Member Author

I will try my best to get all features we need upstreamed.

@timon-schelling timon-schelling enabled auto-merge (squash) September 21, 2025 11:58
@timon-schelling timon-schelling merged commit 21f34ab into master Sep 21, 2025
3 of 4 checks passed
@timon-schelling timon-schelling deleted the desktop-window-resize-wayland-gnome-csd branch September 21, 2025 12:17
@github-project-automation github-project-automation bot moved this from In review to Done in Desktop Application Sep 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

Integrate custom window frames for Linux Wayland
2 participants