diff --git a/EDMarketConnector.py b/EDMarketConnector.py index b6e348a7..f2f8fbb4 100755 --- a/EDMarketConnector.py +++ b/EDMarketConnector.py @@ -1068,11 +1068,13 @@ Locale LC_TIME: {locale.getlocale(locale.LC_TIME)}''' We scale the UI relative to what we find tk-scaling is on startup. """ ui_scale = config.getint('ui_scale') + # NB: This *also* catches a literal 0 value to re-set to the default 100 if not ui_scale: ui_scale = 100 config.set('ui_scale', ui_scale) theme.default_ui_scale = root.tk.call('tk', 'scaling') logger.debug(f'Default tk scaling = {theme.default_ui_scale}') + theme.startup_ui_scale = ui_scale root.tk.call('tk', 'scaling', theme.default_ui_scale * float(ui_scale) / 100.0) app = AppWindow(root) diff --git a/prefs.py b/prefs.py index 40cf8a93..6b2e824c 100644 --- a/prefs.py +++ b/prefs.py @@ -354,8 +354,8 @@ class PreferencesDialog(tk.Toplevel): themeframe, variable=self.ui_scale, orient=tk.HORIZONTAL, - length=300 * (float(config.getint('ui_scale')) / 100.0 * theme.default_ui_scale), - from_=10, + length=300 * (float(theme.startup_ui_scale) / 100.0 * theme.default_ui_scale), + from_=0, to=400, tickinterval=50, resolution=10, diff --git a/theme.py b/theme.py index f1a97721..d56b7798 100644 --- a/theme.py +++ b/theme.py @@ -116,6 +116,7 @@ class _Theme(object): self.defaults = {} self.current = {} self.default_ui_scale = None # None == not yet known + self.startup_ui_scale = None def register(self, widget): # Note widget and children for later application of a theme. Note if the widget has explicit fg or bg attributes.