| ... |
... |
@@ -188,9 +188,6 @@ def _on_sounds_mute(widget: Gtk.CheckMenuItem) -> None: |
|
188
|
188
|
app.settings.set('sounds_on', not widget.get_active())
|
|
189
|
189
|
|
|
190
|
190
|
def _on_toggle_window(self, _widget: Gtk.MenuItem) -> None:
|
|
191
|
|
- self._on_activate()
|
|
192
|
|
-
|
|
193
|
|
- def _on_activate(self, *args: Any) -> None:
|
|
194
|
191
|
if app.window.is_minimized():
|
|
195
|
192
|
app.window.unminimize()
|
|
196
|
193
|
elif app.window.is_withdrawn():
|
| ... |
... |
@@ -258,17 +255,22 @@ def _on_size_changed(self, |
|
258
|
255
|
self.update_state()
|
|
259
|
256
|
|
|
260
|
257
|
def _on_popup_menu(self,
|
|
261
|
|
- _status_icon: Gtk.StatusIcon,
|
|
|
258
|
+ status_icon: Gtk.StatusIcon,
|
|
262
|
259
|
button: int,
|
|
263
|
260
|
activate_time: int) -> None:
|
|
264
|
|
- if button == 1:
|
|
265
|
|
- self._on_activate()
|
|
266
|
|
- elif button == 2:
|
|
267
|
|
- self._on_activate()
|
|
|
261
|
+
|
|
|
262
|
+ if button in (1, 2):
|
|
|
263
|
+ self._on_activate(status_icon)
|
|
268
|
264
|
elif button == 3:
|
|
269
|
|
- self._build_menu(activate_time)
|
|
|
265
|
+ self._build_menu(button, activate_time)
|
|
|
266
|
+
|
|
|
267
|
+ def _on_activate(self, _status_icon: Gtk.StatusIcon) -> None:
|
|
|
268
|
+ if app.window.has_toplevel_focus():
|
|
|
269
|
+ app.window.hide()
|
|
|
270
|
+ else:
|
|
|
271
|
+ app.window.show()
|
|
270
|
272
|
|
|
271
|
|
- def _build_menu(self, event_time: int) -> None:
|
|
|
273
|
+ def _build_menu(self, button: int, event_time: int) -> None:
|
|
272
|
274
|
for menu in self._popup_menus:
|
|
273
|
275
|
menu.destroy()
|
|
274
|
276
|
|
| ... |
... |
@@ -289,7 +291,7 @@ def _build_menu(self, event_time: int) -> None: |
|
289
|
291
|
|
|
290
|
292
|
self._ui.systray_context_menu.show_all()
|
|
291
|
293
|
self._ui.systray_context_menu.popup(
|
|
292
|
|
- None, None, None, None, 0, event_time)
|
|
|
294
|
+ None, None, None, None, button, event_time)
|
|
293
|
295
|
|
|
294
|
296
|
|
|
295
|
297
|
class AppIndicator(GtkMenuBackend):
|