Skip to content

Commit 4411bfe

Browse files
committed
theme settings: Don't use an additional stack for custom mode.
- Make 'simplified' page a sibling to the advanced pages, but leave it untitled, which keeps it invisible to the stack switcher. - Hide the switcher when the simplified page is visible. - Keep using crossfade to switch between simple and advanced views, keeping the left/right fade between advanced mode pages. Fixes linuxmint/mint21.2-beta#20
1 parent 961a77e commit 4411bfe

File tree

2 files changed

+228
-279
lines changed

2 files changed

+228
-279
lines changed

files/usr/share/cinnamon/cinnamon-settings/modules/cs_themes.py

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ def on_module_selected(self):
186186
builder = Gtk.Builder()
187187
builder.set_translation_domain('cinnamon')
188188
builder.add_from_file(gladefile)
189-
page = builder.get_object("page_themes")
189+
page = builder.get_object("page_simplified")
190190
page.show()
191191

192192
self.style_combo = builder.get_object("style_combo")
@@ -197,8 +197,6 @@ def on_module_selected(self):
197197
self.customize_button = builder.get_object("customize_button")
198198
self.preset_button = builder.get_object("preset_button")
199199
self.color_label = builder.get_object("color_label")
200-
self.main_stack = builder.get_object("main_stack")
201-
self.custom_stack = builder.get_object("custom_stack")
202200
self.active_style = None
203201
self.active_mode_name = None
204202
self.active_variant = None
@@ -216,19 +214,16 @@ def on_module_selected(self):
216214

217215
self.reset_look_ui()
218216

219-
if self.active_variant is None:
220-
self.main_stack.set_visible_child_name("custom_page")
221-
222217
self.mixed_button.connect("clicked", self.on_mode_button_clicked, "mixed")
223218
self.dark_button.connect("clicked", self.on_mode_button_clicked, "dark")
224219
self.light_button.connect("clicked", self.on_mode_button_clicked, "light")
225220
self.customize_button.connect("clicked", self.on_customize_button_clicked)
226221
self.style_combo.connect("changed", self.on_style_combo_changed)
227222

228-
self.sidePage.stack.add_named(page, "themes")
223+
self.sidePage.stack.add_named(page, "simplified")
229224

230225
page = SettingsPage()
231-
self.custom_stack.add_titled(page, "themes", _("Themes"))
226+
self.sidePage.stack.add_titled(page, "themes", _("Themes"))
232227

233228
settings = page.add_section()
234229

@@ -247,14 +242,14 @@ def on_module_selected(self):
247242
button = Gtk.Button()
248243
button.set_label(_("Simplified settings..."))
249244
button.set_halign(Gtk.Align.END)
250-
button.connect("clicked", self.on_preset_button_clicked)
245+
button.connect("clicked", self.on_simplified_button_clicked)
251246
page.add(button)
252247

253248
page = DownloadSpicesPage(self, 'theme', self.spices, self.window)
254-
self.custom_stack.add_titled(page, 'download', _("Add/Remove"))
249+
self.sidePage.stack.add_titled(page, 'download', _("Add/Remove"))
255250

256251
page = SettingsPage()
257-
self.custom_stack.add_titled(page, "options", _("Settings"))
252+
self.sidePage.stack.add_titled(page, "options", _("Settings"))
258253

259254
settings = page.add_section(_("Miscellaneous options"))
260255

@@ -340,6 +335,8 @@ def on_module_selected(self):
340335

341336
self.refresh_choosers()
342337

338+
GLib.idle_add(self.set_simplified_mode, self.active_variant is not None, True)
339+
343340
def is_variant_active(self, variant):
344341
# returns whether or not the given variant corresponds to the currently selected themes
345342
if variant.gtk_theme != self.settings.get_string("gtk-theme"):
@@ -519,11 +516,26 @@ def on_customize_button_clicked(self, button):
519516
self.set_button_chooser(self.cursor_chooser, self.settings.get_string("cursor-theme"), 'icons', 'cursors', 32)
520517
self.set_button_chooser(self.theme_chooser, self.settings.get_string("gtk-theme"), 'themes', 'gtk-3.0', 35)
521518
self.set_button_chooser(self.cinnamon_chooser, self.cinnamon_settings.get_string("name"), 'themes', 'cinnamon', 60)
522-
self.main_stack.set_visible_child_name("custom_page")
519+
self.set_simplified_mode(False)
523520

524-
def on_preset_button_clicked(self, button):
521+
def on_simplified_button_clicked(self, button):
525522
self.reset_look_ui()
526-
self.main_stack.set_visible_child_name("preset_page")
523+
self.set_simplified_mode(True)
524+
525+
def set_simplified_mode(self, simplified, startup=False):
526+
# When picking a start page at startup, no transition, or else you'll see the tail end of it happening
527+
# as the page is loading. Otherwise, crossfade when switching between simple/custom. The left/right
528+
# transition is kept as the default for shifting between the 3 custom pages (themes, downloads, settings).
529+
if simplified:
530+
self.sidePage.stack.set_visible_child_full("simplified", Gtk.StackTransitionType.CROSSFADE)
531+
Gio.Application.get_default().stack_switcher.set_opacity(0.0)
532+
else:
533+
if startup:
534+
self.sidePage.stack.set_visible_child_full("themes", Gtk.StackTransitionType.NONE)
535+
else:
536+
self.sidePage.stack.set_visible_child_full("themes", Gtk.StackTransitionType.CROSSFADE)
537+
538+
Gio.Application.get_default().stack_switcher.set_opacity(1.0)
527539

528540
def on_color_button_clicked(self, button, variant):
529541
print("Color button clicked")

0 commit comments

Comments
 (0)