diff --git a/novelwriter/gui/theme.py b/novelwriter/gui/theme.py index 43a6ffe3..bcdb1108 100644 --- a/novelwriter/gui/theme.py +++ b/novelwriter/gui/theme.py @@ -252,7 +252,7 @@ class GuiTheme: return QColor(*result) return default - def loadTheme(self) -> bool: + def loadTheme(self, force: bool = False) -> bool: """Load the currently specified GUI theme.""" match CONFIG.themeMode: case nwTheme.LIGHT: @@ -272,7 +272,7 @@ class GuiTheme: theme = DEF_GUI_LIGHT CONFIG.lightTheme = DEF_GUI_LIGHT - if theme == self._currentTheme: + if theme == self._currentTheme and not force: logger.info("Theme '%s' is already loaded", theme) return False diff --git a/novelwriter/guimain.py b/novelwriter/guimain.py index 6af7b3c7..41edcf3e 100644 --- a/novelwriter/guimain.py +++ b/novelwriter/guimain.py @@ -910,9 +910,9 @@ class GuiMain(QMainWindow): self.docViewer.initViewer() return - def refreshThemeColors(self, syntax: bool) -> None: + def refreshThemeColors(self, syntax: bool = False, force: bool = False) -> None: """Refresh the GUI theme.""" - SHARED.theme.loadTheme() + SHARED.theme.loadTheme(force=force) self.setPalette(QApplication.palette()) self.docEditor.updateTheme() self.docViewer.updateTheme() @@ -1090,7 +1090,7 @@ class GuiMain(QMainWindow): self.novelView.refreshCurrentTree() if theme: - self.refreshThemeColors(syntax=syntax) + self.refreshThemeColors(syntax=syntax, force=True) self.docEditor.initEditor() self.docViewer.initViewer()