Add GTK-themed client-side decoration for Wayland without xdg-decoration#4178
Conversation
…tion - Add LinuxFrameView using GTK WindowFrameProvider for native CSD borders, shadows, and caption buttons, replacing the blue DefaultFrameView - Set window opacity to kTranslucent when GTK frame provider is available so Wayland renders shadows with alpha instead of opaque black - Override GetCustomInsetsInDIP in both ChromeBrowserWidget (Chrome style) and CefWidgetImpl (Alloy style) to report frame border insets to the Wayland compositor via xdg_surface.set_window_geometry Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Review CommentsMain concern: this reimplements what Chromium already provides. Currently Additional issues:
Recommendation: Investigate why the existing |
Summary
LinuxFrameViewusing GTKWindowFrameProviderfor native CSD borders, shadows, and caption buttons, replacing the blueDefaultFrameViewkTranslucentwhen GTK frame provider is available so Wayland renders shadows with alpha instead of opaque blackGetCustomInsetsInDIPin bothChromeBrowserWidget(Chrome style) andCefWidgetImpl(Alloy style) to report frame border insets to the Wayland compositor via xdg_surface.set_window_geometryHow to test
rtc_use_pipewire=truewhen exportingGN_DEFINES. A few packages are required to build it. Here's a list for Ubuntu:cefclientpointing to Weston's socketThe result should be similar to the following
