diff options
Diffstat (limited to 'src/colors.zig')
| -rw-r--r-- | src/colors.zig | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/colors.zig b/src/colors.zig index a45184c8..2dcb906a 100644 --- a/src/colors.zig +++ b/src/colors.zig @@ -837,6 +837,19 @@ pub fn loadThemeFile(p: *Pardes, generation: u32, bytes: []const u8, animate: bo return true; } +/// A Restore's: the theme `old` showed, its loaded theme file's included, +/// for one that is to load a ThemeFile and keep this if it fails; +/// `index` too when the dump names no Theme. +pub fn carryTheme(p: *Pardes, old: *const Pardes, index: bool) !void { + if (index) p.settings.theme = old.settings.theme; + const t = old.custom_theme orelse return; + var copy = t; + copy.name = try p.gpa.dupe(u8, t.name); + if (p.custom_theme) |mine| std.zon.parse.free(p.gpa, mine); + p.custom_theme = copy; + _ = p.theme_file_loaded.set(old.theme_file_loaded.get()); +} + pub fn finishThemeInitialization(p: *Pardes) void { p.chrome_animation.snap(ChromeTheme.fromTheme(p.theme())); p.animate_theme_changes = true; |
