From 68df33a84528816dac12090ec2829e1bbf64582a Mon Sep 17 00:00:00 2001 From: kramo Date: Sat, 7 Oct 2023 18:34:44 +0000 Subject: [PATCH] window: Correctly save window geometry The `close-request` signal cannot be relied on as it is not sent when the window is closed via force quitting or quitting via Ctrl+Q. Fixes #349 --- src/app/window.js | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/src/app/window.js b/src/app/window.js index 2506d602..0c88fb36 100644 --- a/src/app/window.js +++ b/src/app/window.js @@ -90,7 +90,10 @@ export const MainWindow = GObject.registerClass({ this._settings = Util.getSettings('org.gnome.Weather'); this._restoreWindowGeometry(); - this.connect('close-request', () => this._saveWindowGeometry()); + + this._settings.bind("window-width", this, "default-width", Gio.SettingsBindFlags.DEFAULT) + this._settings.bind("window-height", this, "default-height", Gio.SettingsBindFlags.DEFAULT) + this._settings.bind("window-maximized", this, "maximized", Gio.SettingsBindFlags.DEFAULT) } vfunc_unroot() { @@ -117,20 +120,6 @@ export const MainWindow = GObject.registerClass({ this._currentPage = page; } - _saveWindowGeometry() { - this._settings.set_boolean( - 'window-maximized', - this.maximized - ); - - let defaultWindowSize = this.get_default_size() - this._settings.set_int( - 'window-width', defaultWindowSize[0] - ); - this._settings.set_int( - 'window-height', defaultWindowSize[1] - ); - } _restoreWindowGeometry() { if (this._settings.get_boolean('window-maximized')) { -- GitLab