roundabout,
created on Saturday, 26 July 2025, 09:12:13 (1753521133),
received on Saturday, 9 August 2025, 12:22:37 (1754742157)
Author identity: vlad <vlad.muntoiu@gmail.com>
9393f70f7d589ce1b04735b384e024792c7577e1
applets/wf-window-list/__init__.py
@@ -41,6 +41,9 @@ class WFWindowList(panorama_panel.Applet):
config = {}
self.toplevel_buttons: dict[ZwlrForeignToplevelHandleV1, WindowButton] = {}
# This button doesn't belong to any window but is used for the button group and to be
# selected when no window is focused
self.initial_button = Gtk.ToggleButton()
self.display = Display()
self.display.connect()
@@ -50,8 +53,6 @@ class WFWindowList(panorama_panel.Applet):
fd = self.display.get_fd()
GLib.io_add_watch(fd, GLib.IO_IN, self.on_display_event)
self.initial_button = Gtk.ToggleButton()
self.context_menu = self.make_context_menu()
panorama_panel.track_popover(self.context_menu)
@@ -71,7 +72,7 @@ class WFWindowList(panorama_panel.Applet):
def on_display_event(self, source, condition):
if condition == GLib.IO_IN:
self.display.dispatch()
self.display.dispatch(block=True)
return True
def on_global(self, registry, name, interface, version):
@@ -90,12 +91,13 @@ class WFWindowList(panorama_panel.Applet):
handle.dispatcher["title"] = lambda h, title: self.on_title_changed(h, title)
#handle.dispatcher["app_id"] = lambda h, app_id: self.on_app_id_changed(h, app_id)
#handle.dispatcher["state"] = lambda h, states: self.on_state_changed(h, states)
handle.dispatcher["closed"] = lambda h: self.on_closed(h)
#handle.dispatcher["closed"] = lambda h: self.on_closed(h)
def on_title_changed(self, handle, title):
print(f"Window title: {title}")
if handle not in self.toplevel_buttons:
button = WindowButton(id(handle), title)
button.set_group(self.initial_button)
button.connect("clicked", lambda *a: self.on_button_click(handle))
self.toplevel_buttons[handle] = button
self.append(button)