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