From 56c7f3e0079ad33ab5d1752ef7be90e4b500f5dd Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 19 Jul 2022 13:45:43 +0530 Subject: [PATCH] Ignore Qt generated application palette changes when using a fixed palette. Fixes #1982050 [Calibre 6.0+ Switching from Dark Mode to Light after Editing Metadata and Reconnecting RDP](https://bugs.launchpad.net/calibre/+bug/1982050) --- src/calibre/gui2/__init__.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index e5fb03aa71..bee040a5e3 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -1415,7 +1415,18 @@ class Application(QApplication): return True else: if etype == QEvent.Type.ApplicationPaletteChange: + if DEBUG: + if self.ignore_palette_changes: + print('ApplicationPaletteChange event ignored', file=sys.stderr) + else: + print('ApplicationPaletteChange event received', file=sys.stderr) if not self.ignore_palette_changes: + if gprefs['color_palette'] != 'system': + pal = dark_palette() if gprefs['color_palette'] == 'dark' else self.original_palette + if self.palette().color(QPalette.ColorRole.Window) != pal.color(QPalette.ColorRole.Window): + if DEBUG: + print('Detected a spontaneous palette change in windows, reverting it', file=sys.stderr) + self.set_palette(pal) self.on_palette_change() return QApplication.event(self, e)