Skip to content

Commit 20864d2

Browse files
committed
cs_themes.py: Keep the current variant between modes if possible.
When switching between simple modes (dark/mixed/light), attempt to keep the current color variant if it exists for the new mode, otherwise switch to the default variant.
1 parent 8dbb5bd commit 20864d2

File tree

1 file changed

+14
-1
lines changed
  • files/usr/share/cinnamon/cinnamon-settings/modules

1 file changed

+14
-1
lines changed

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

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,13 @@ def __init__(self, name):
4343
self.default_variant = None
4444
self.variants = []
4545

46+
def get_variant_by_name(self, name):
47+
for variant in self.variants:
48+
if name == variant.name:
49+
return variant
50+
51+
return None
52+
4653
class Variant:
4754
def __init__(self, json_obj):
4855
self.name = json_obj["name"]
@@ -536,7 +543,13 @@ def on_style_combo_changed(self, combobox):
536543

537544
def activate_mode(self, style, mode):
538545
print("Activating mode:", mode.name)
539-
self.activate_variant(mode.default_variant)
546+
547+
if self.active_variant is not None:
548+
new_same_variant = mode.get_variant_by_name(self.active_variant.name)
549+
if new_same_variant is not None:
550+
self.activate_variant(new_same_variant)
551+
else:
552+
self.activate_variant(mode.default_variant)
540553

541554
def activate_variant(self, variant):
542555
print("Activating variant:", variant.name)

0 commit comments

Comments
 (0)