diff --git a/src/calibre/gui2/main.py b/src/calibre/gui2/main.py index 9a49b01764..b52bd2cadb 100644 --- a/src/calibre/gui2/main.py +++ b/src/calibre/gui2/main.py @@ -135,7 +135,8 @@ class GuiRunner(QObject): main = Main(self.opts, gui_debug=self.gui_debug) if self.splash_screen is not None: self.splash_screen.showMessage(_('Initializing user interface...')) - main.initialize(self.library_path, db, self.listener, self.actions) + with gprefs: # Only write gui.json after initialization is complete + main.initialize(self.library_path, db, self.listener, self.actions) if self.splash_screen is not None: self.splash_screen.finish(main) if DEBUG: diff --git a/src/calibre/gui2/ui.py b/src/calibre/gui2/ui.py index 7a05810f2d..3490c63215 100644 --- a/src/calibre/gui2/ui.py +++ b/src/calibre/gui2/ui.py @@ -367,6 +367,8 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, EmailMixin, # {{{ self.keyboard.finalize() self.auto_adder = AutoAdder(gprefs['auto_add_path'], self) + self.save_layout_state() + # Collect cycles now gc.collect()