Daniel Brötzmann pushed to branch master at gajim / gajim


Commits:
f78b2c01 by wurstsalat at 2025-01-29T23:15:57+01:00
cfix: MainWindow: Store 'is_window_visible' explicitly when 
showing/hiding the window

- - - - -


4 changed files:

- gajim/gtk/application.py
- gajim/gtk/dialogs.py
- gajim/gtk/main.py
- gajim/gtk/status_icon.py


Changes:

=====================================
gajim/gtk/application.py
=====================================
@@ -392,7 +392,7 @@ def _handle_local_options(
         return -1
 
     def _on_activate(self, _application: Gtk.Application) -> None:
-        app.window.show()
+        app.window.show_window()
 
     def _add_app_actions(self) -> None:
         for action in APP_ACTIONS:


=====================================
gajim/gtk/dialogs.py
=====================================
@@ -274,7 +274,7 @@ def _on_button_clicked(self, button: Gtk.Button) -> None:
         if action == "minimize":
             app.window.minimize()
         elif action == "hide":
-            app.window.hide()
+            app.window.hide_window()
         elif action == "quit":
             app.window.quit()
 


=====================================
gajim/gtk/main.py
=====================================
@@ -229,21 +229,17 @@ def _prepare_window(self) -> None:
 
         self.show()
 
-        toplevel_surface = self.get_surface()
-        assert toplevel_surface is not None
-        toplevel_surface.connect("notify::state", 
self._on_window_state_changed)
-
         if app.is_display(Display.X11):
             self.set_skip_taskbar_hint(not app.settings.get("show_in_taskbar"))
 
         show_main_window = app.settings.get("show_main_window_on_startup")
         if show_main_window == "never":
-            self.hide()
+            self.hide_window()
 
         elif show_main_window == "last_state" and not app.settings.get(
             "is_window_visible"
         ):
-            self.hide()
+            self.hide_window()
 
     def _on_account_enabled(self, event: events.AccountEnabled) -> None:
         self._account_side_bar.add_account(event.account)
@@ -813,7 +809,7 @@ def _on_close_request(self, _widget: Gtk.ApplicationWindow) 
-> int:
 
         action = app.settings.get("action_on_close")
         if action == "hide":
-            self.hide()
+            self.hide_window()
         elif action == "minimize":
             self.minimize()
         else:
@@ -821,6 +817,14 @@ def _on_close_request(self, _widget: 
Gtk.ApplicationWindow) -> int:
 
         return Gdk.EVENT_STOP
 
+    def show_window(self) -> None:
+        app.settings.set("is_window_visible", True)
+        self.show()
+
+    def hide_window(self) -> None:
+        app.settings.set("is_window_visible", False)
+        self.hide()
+
     def _on_window_state_changed(self, toplevel: Gdk.Toplevel, *args: Any) -> 
None:
         # TODO GTK4
         toplevel_state = toplevel.get_state()
@@ -1363,9 +1367,11 @@ def _on_file_request(self, event: 
events.FileRequestReceivedEvent) -> None:
             self.add_chat(event.account, event.jid, "chat")
 
     def quit(self) -> None:
-        window_width, window_height = self.get_width(), self.get_height()
-        app.settings.set("mainwin_width", window_width)
-        app.settings.set("mainwin_height", window_height)
+        if self.is_visible():
+            window_width, window_height = self.get_width(), self.get_height()
+            app.settings.set("mainwin_width", window_width)
+            app.settings.set("mainwin_height", window_height)
+
         app.settings.save()
 
         def on_continue2(message: str | None) -> None:


=====================================
gajim/gtk/status_icon.py
=====================================
@@ -128,9 +128,9 @@ def _on_sounds_mute() -> None:
 
     def _on_show_hide(self) -> None:
         if app.window.is_visible():
-            app.window.hide()
+            app.window.hide_window()
         else:
-            app.window.show()
+            app.window.show_window()
 
     @staticmethod
     def _on_preferences() -> None:



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/f78b2c014e071a5009c0f739489c218675726fe9

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/f78b2c014e071a5009c0f739489c218675726fe9
You're receiving this email because of your account on dev.gajim.org.


_______________________________________________
Commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to