Cinnamon: Reset to defaults in settings of applets doesn't take effect

Created on 20 Nov 2016  ·  3Comments  ·  Source: linuxmint/cinnamon

E.g. you are messing around with the options in the settings of the menu-applet.
You can click on the "burger" symbol in the top right corner and then "Reset to defaults".
You have to restart Cinnamon to get to the default state. In Cinnamon 2.8.8 you didn't had to restart. So I guess it's a regression.

I think the bug is hidden somewhere here https://github.com/linuxmint/Cinnamon/commit/3478db2822d2f4c839c7d0ef7b517f0aa1d50bae
(@collinss cough cough ;)

BUG REPRODUCED

Most helpful comment

Oh, I think I might know what is going on. My guess is that I didn't worry about sending signals from the settings window to cinnamon because I originally had a file monitor in settings.js. However, due to https://github.com/linuxmint/Cinnamon/commit/864f632aeca48099a563aa0a8c66387d866b423e, there is no longer a file monitor in settings.js so it doesn't get updated. I'm not working this week after tomorrow (due to the holiday), so I should be able to fix this later this week.

All 3 comments

It actually resets the settings in the window, they just don't take effect.

Hello, g@ys.

I have been trying to fix this, but without success (it turned out to be way out of my league).

To give more details to the issue/s.

  • After resetting the settings to their default values, the settings window reflect the changes and the settings file for that settings instance is changed and saved. The xlet doesn't reflect those changes unless Cinnamon is restarted.
  • Something similar happens when importing from an exported settings file. The imported values will be reflected in the settings window, but the xlet remains unaffected by those new settings. Restarting Cinnamon will make the xlet read the settings file and reflect the new values.

I think that the problem is in the settings bindings.

  • Currently, on Cinnamon 3.0.7, all settings files are constantly monitored. If one manually changes a setting in a settings file, it will take effect immediately on the xlet, but the setting window will not be aware of that change.
  • But in Cinnamon 3.2.x, the settings files are monitored only when the settings window is open. If one changes a setting value manually on a settings file, the setting change is immediately reflected on the settings window, but not in the xlet.

Oh, I think I might know what is going on. My guess is that I didn't worry about sending signals from the settings window to cinnamon because I originally had a file monitor in settings.js. However, due to https://github.com/linuxmint/Cinnamon/commit/864f632aeca48099a563aa0a8c66387d866b423e, there is no longer a file monitor in settings.js so it doesn't get updated. I'm not working this week after tomorrow (due to the holiday), so I should be able to fix this later this week.

Was this page helpful?
0 / 5 - 0 ratings