This was originally reported by @marcvangend in #741242: Cleanup left over set-to-global-defaults description:

Theme-specific settings are following the global settings 'automagically' until the first time you save the settings form for a specific theme. On that moment, that theme stops following the global settings and starts storing it's own settings. I think the theme settings forms are suffering from a couple of problems:
1) The user doesn't know when he is breaking the invisible link with the global settings.
2) The theme even starts using its own settings (instead of global) if the form is submitted without changes.
3) On the theme-specific form, you can't see if you're looking at default values (loaded from the global settings) or at theme-specific settings.
4) There is no way to switch back to global settings (but OK, that choice was made in #518750).

One solution for Drupal 8 was proposed at #745402: Consider the removal of global theme settings, but I think some of this is a bug potentially for Drupal 7. If we provide global settings as an option in the UI, it really should always mean something. (We don't want sites to get into a situation where they have submitted each individual theme's settings page and therefore the global theme settings page is totally and completely meaningless.)

Thinking out loud, I'd suggest maybe some kind of checkbox on the individual theme's settings pages that says "use global theme settings"? If checked, all the individual theme settings that have global equivalents would have their checkboxes disabled and set to match the global values....

Comments

marcvangend’s picture

David, there is an important observation in your post. For every theme, there are two kinds of theme settings: settings that have a global equivalent and settings that occur only in that specific theme. When going back to global theme settings, you can only do that with the settings that have a global equivalent.

The problem addressed in #518750: Rethink the system settings form was that specific theme settings were deleted while going back to the global theme settings. Your suggestion would indeed solve that; you could go back to inheriting global settings while preserving the theme-specific settings.

In fact, it might be good to call the checkbox 'override global theme settings' and make it disabled by default, so users will have to make a deliberate choice to override the global settings. Combined with a little jQuery (hiding the form elements with global equivalents), that would clean up the settings forms.