Add setting to select whether to force dialogs to always use CSD
Currently, dialogs use Client Side Decorations when the action buttons are placed in the headerbar (i.e. when
Gtk/DialogsUseHeader = 1).
In elementary OS, the headerbar is not used for the action buttons, so this option is overridden to 0. However, for styling reasons, it is still desirable to have dialog windows use CSD. Dialogs are styled to be quite flat with the titlebar area blending in with the body of the dialog. Whereas titlebars on SSD windows are styled with a gradient.
To achieve this effect currently, elementary ships a file in
/etc/profile that exports
GTK_CSD=1, hence forcing CSD on everything. This achieves the desired effect for dialog windows but has some undesirable effects for non-GTK native applications (usually those based on Java or wxWidgets).
This proposes adding an extra setting that can be overridden with XSettings overrides or equivalent that allows optionally forcing dialogs to always use CSD, despite the value of the
Gtk/DialogsUseHeader option. This would allow us to drop the exported environment variable and fix the behaviour of the non-native apps.