Philipp Hörist pushed to branch master at gajim / gajim


Commits:
53b2dbca by lovetox at 2022-06-27T22:39:37+02:00
fix: StatusIcon: Don’t lose new message icon on state change

Fixes #11013

- - - - -


1 changed file:

- gajim/gtk/status_icon.py


Changes:

=====================================
gajim/gtk/status_icon.py
=====================================
@@ -80,8 +80,7 @@ def _can_use_libindicator() -> bool:
                 app.is_installed('AYATANA_APPINDICATOR'))
 
     def _on_setting_changed(self, *args: Any) -> None:
-        count = app.window.get_total_unread_count()
-        self._backend.update_state(count=count)
+        self._backend.update_state()
 
     def connect_unread_widget(self, widget: Gtk.Widget, signal: str) -> None:
         widget.connect(signal, self._on_unread_count_changed)
@@ -89,8 +88,7 @@ def connect_unread_widget(self, widget: Gtk.Widget, signal: 
str) -> None:
     def _on_unread_count_changed(self, *args: Any) -> None:
         if not app.settings.get('trayicon_notification_on_events'):
             return
-        count = app.window.get_total_unread_count()
-        self._backend.update_state(count=count)
+        self._backend.update_state()
 
     def is_visible(self) -> bool:
         return self._backend.is_visible()
@@ -100,7 +98,7 @@ def shutdown(self) -> None:
 
 
 class NoneBackend:
-    def update_state(self, count: int = 0) -> None:
+    def update_state(self, init: bool = False) -> None:
         pass
 
     def is_visible(self) -> bool:
@@ -133,7 +131,7 @@ def __init__(self) -> None:
             client.connect_signal('state-changed',
                                   self._on_client_state_changed)
 
-    def update_state(self, count: int = 0) -> None:
+    def update_state(self, init: bool = False) -> None:
         raise NotImplementedError
 
     def is_visible(self) -> bool:
@@ -220,9 +218,9 @@ def __init__(self) -> None:
         self._status_icon.connect('popup-menu', self._on_popup_menu)
         self._status_icon.connect('size-changed', self._on_size_changed)
 
-        self.update_state()
+        self.update_state(init=True)
 
-    def update_state(self, count: int = 0) -> None:
+    def update_state(self, init: bool = False) -> None:
         if self._shutdown:
             # Shutdown in progress, don't update icon
             return
@@ -233,7 +231,7 @@ def update_state(self, count: int = 0) -> None:
 
         self._status_icon.set_visible(True)
 
-        if count > 0:
+        if not init and app.window.get_total_unread_count():
             self._status_icon.set_from_icon_name('mail-message-new')
             return
 
@@ -308,16 +306,16 @@ def __init__(self) -> None:
         self._status_icon.set_secondary_activate_target(
             self._ui.toggle_window_menuitem)
 
-        self.update_state()
+        self.update_state(init=True)
 
-    def update_state(self, count: int = 0) -> None:
+    def update_state(self, init: bool = False) -> None:
         if not app.settings.get('show_trayicon'):
             self._status_icon.set_status(appindicator.IndicatorStatus.PASSIVE)
             return
 
         self._status_icon.set_status(appindicator.IndicatorStatus.ACTIVE)
 
-        if count > 0:
+        if not init and app.window.get_total_unread_count():
             icon_name = 'mail-message-new'
             self._status_icon.set_icon_full(icon_name, _('Pending Event'))
             return



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

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


_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to