frontend: Enforce Qt to have a DE-agnostic behavior on Linux #11815
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Enforce Qt to have a DE-agnostic behavior on Linux
I didn't have Plasma screenshot since I have no machine under it.
Before (with Qt 6.8 on GNOME):
After:
Motivation and Context
If the platform theme is not enforced, Plasma Wayland will enforce SSD decoration (that also lead to some menu issues depending on the distro defaults). This also has made some users think that we explicitly support SSD which is not the case, we rely on Qt default CSD.
If the wayland decoration is not enforced, under GNOME, Qt (since 6.8) will try to enforce a GNOME-like decoration. DO NOT mix it up with GNOME X11 SSD decoration.
There is also third-party Qt plugins (e.g. qt5ct, qgnome) that caused their share of issues in the past, removing them from the list of potential culprit still can be useful.
I think this is not controversial to expect OBS Studio to look the same under any desktop environment.
How Has This Been Tested?
Ran locally OBS (outside of a Flatpak) and no issue were met using file chooser (use portals now rather the GTK 3 dialog) and the window decoration is Bradient.
Types of changes
Checklist: