Closed Bug 1756903 Opened 2 years ago Closed 2 years ago

Consider dropping support for GTK_DECORATION_SYSTEM


(Core :: Widget: Gtk, task)




101 Branch
Tracking Status
firefox101 --- fixed


(Reporter: emilio, Assigned: emilio)


(Blocks 1 open bug, Regressed 2 open bugs)



(1 file)

Client seems to work fine ~everywhere, and SYSTEM has some weird overdrawing on window corners, so I think we should do it if we can.

I tested client all the way back to Ubuntu 18 LTS and seems to work
fine, any reason not to try this?

This fixes some weird overdrawing on the window corners on GNOME+X11.

I tried that before and hit issues so reverted it....we can reconsider that but better after 99 freeze to bake it in nightly.

Another unfortunate thing is that mozilla testsuite is running with GTK_DECORATION_NONE. The testsuite fails with GTK_DECORATION_CLIENT.
( see Bug 1681886 Bug 1431429)

GTK_DECORATION_CLIENT has one side effect - when GTK_DECORATION_CLIENT is set on we reparent mContainer widget. That leads to unrealize / unmap calls on mContainer and another map of mContainer which is generally a bug Bug 1754711. We may end up with GtkCompositorWidget & wrong XWindow. So we may want to fix Bug 1754711 (recreate GtkCompositorWidget internals and its GL context).

meta bug: bug 1283299
MOZ_GTK_TITLEBAR_DECORATION=client causes bug 1502519/bug 1743255, maybe also bug 1743254.
Is Gtk double buffering not disabled everywhere (bug 1502519 comment 27)?

Type: defect → enhancement
Type: enhancement → task

Just wondering - is Gnome with the CSD the only desktop in the world ? Even Chrome has an option to switch it off. So far it seems still possible to have nice looking oldschool window decorations instead of ugly gnomish CSD, but name of the bug looks scary.

This is not changing / removing the titlebar checkbox, it's only unifying how it's implemented.

Pushed by
Consider using client decorations everywhere. r=stransky
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 101 Branch
Blocks: gtktitlebar
Regressions: 1771914
Regressions: 1781262
Regressions: 1798131
Regressions: 1805703

Hey Emilio, we have quite a few regression getting reported here. Thoughts? Should we be tracking / pushing for fixes for the regressions?

Flags: needinfo?(emilio)

This patch unified the code-path we used to render on Linux on all desktop-environments (removing an X11+GNOME/Unity special-case, effectively). It is needed to avoid rendering window corners without glitches on those environments.

I did a pass over the remaining unfixed regressions:

  • Bug 1764502 is a perf regression which we unfortunately haven't fixed (that's partially on me). However this is the codepath that we were already using on both Wayland (everywhere) and every other non-GNOME X environment. So it effectively surfaced a performance issue that a lot of users already had already.
  • Bug 1769553 only applies to 32-bit non-supported ubuntu versions (it's probably a GTK bug that we can't really workaround). I'll just wontfix that.
  • Bug 1781262 is xwayland only (and I think we should rather ship wayland rather than workaround xwayland-specific issues).
  • Bug 1788205 wasn't clear if it's our bug either (we could never reproduce it and looked like a compositor bug since it affected gedit and other gtk apps as well), though it seems there are some new STR in the bug which could help reproduce, so I'll try those and try to see what's up.
  • Bug 1805703 is not a regression of this work because it still breaks with DECORATION=system. It was probably due to it being a cloned bug. I'll remove from the regression list.
Flags: needinfo?(emilio)
No longer regressions: 1805703
You need to log in before you can comment on or make changes to this bug.