1212logger = logging .getLogger (__name__ )
1313
1414class SystemTray (Box ):
15- def __init__ (self , pixel_size : int = 20 , refresh_interval : int = 1 , ** kwargs ) -> None :
15+ def __init__ (self , pixel_size : int = 20 , ** kwargs ) -> None :
1616 orientation = Gtk .Orientation .HORIZONTAL if not data .VERTICAL else Gtk .Orientation .VERTICAL
1717 super ().__init__ (
1818 name = "systray" ,
@@ -23,16 +23,12 @@ def __init__(self, pixel_size: int = 20, refresh_interval: int = 1, **kwargs) ->
2323 self .enabled = True
2424 super ().set_visible (False )
2525 self .pixel_size = pixel_size
26- self .refresh_interval = refresh_interval
27-
2826 self .buttons_by_id = {}
2927 self .items_by_id = {}
3028
3129 self .watcher = Gray .Watcher ()
3230 self .watcher .connect ("item-added" , self .on_watcher_item_added )
3331
34- GLib .timeout_add_seconds (self .refresh_interval , self ._refresh_all_items )
35-
3632 def set_visible (self , visible : bool ):
3733 self .enabled = visible
3834 self ._update_visibility ()
@@ -71,7 +67,7 @@ def _get_item_pixbuf(self, item: Gray.Item) -> GdkPixbuf.Pixbuf:
7167 "image-missing" , self .pixel_size , Gtk .IconLookupFlags .FORCE_SIZE
7268 )
7369
74- def _refresh_item_ui (self , identifier : str , item : Gray .Item , button : Gtk .Button ):
70+ def _refresh_item_ui (self , item : Gray .Item , button : Gtk .Button ):
7571 pixbuf = self ._get_item_pixbuf (item )
7672 img = button .get_image ()
7773 if isinstance (img , Gtk .Image ):
@@ -90,14 +86,6 @@ def _refresh_item_ui(self, identifier: str, item: Gray.Item, button: Gtk.Button)
9086 else :
9187 button .set_has_tooltip (False )
9288
93- def _refresh_all_items (self ) -> bool :
94-
95- for ident , item in self .items_by_id .items ():
96- btn = self .buttons_by_id .get (ident )
97- if btn :
98- self ._refresh_item_ui (ident , item , btn )
99- return True
100-
10189 def on_watcher_item_added (self , _ , identifier : str ):
10290 item = self .watcher .get_item_for_identifier (identifier )
10391 if not item :
@@ -113,12 +101,12 @@ def on_watcher_item_added(self, _, identifier: str):
113101 self .items_by_id [identifier ] = item
114102
115103 item .connect ("notify::icon-pixmaps" ,
116- lambda itm , pspec : self ._refresh_item_ui (identifier , itm , btn ))
104+ lambda itm , pspec : self ._refresh_item_ui (itm , btn ))
117105 item .connect ("notify::icon-name" ,
118- lambda itm , pspec : self ._refresh_item_ui (identifier , itm , btn ))
106+ lambda itm , pspec : self ._refresh_item_ui (itm , btn ))
119107
120108 try :
121- item .connect ("updated " , lambda itm : self ._refresh_item_ui (identifier , itm , btn ))
109+ item .connect ("icon-changed " , lambda itm : self ._refresh_item_ui (itm , btn ))
122110 except TypeError :
123111 pass
124112
0 commit comments