roundabout,
created on Thursday, 24 July 2025, 20:39:16 (1753389556),
received on Saturday, 9 August 2025, 12:22:37 (1754742157)
Author identity: vlad <vlad.muntoiu@gmail.com>
14e72c5a0cb015ba8216f7e56318886c1074a8d2
applets/wf-window-list/__init__.py
@@ -33,6 +33,7 @@ class WindowButton(Gtk.ToggleButton):
self.window_id = window_id
self.window_title = window_title
self.set_has_frame(False)
self.set_label(self.window_title)
@@ -51,7 +52,9 @@ class WFWindowList(panorama_panel.Applet):
fd = self.socket.client.fileno()
GLib.io_add_watch(fd, GLib.IO_IN, self.on_wf_event)
self.window_buttons = {}
self.initial_button = Gtk.ToggleButton()
self.window_buttons: dict[int, WindowButton] = {}
for view in self.socket.list_views():
self.create_window_button(view)
@@ -75,6 +78,7 @@ class WFWindowList(panorama_panel.Applet):
def create_window_button(self, view):
button = WindowButton(view["id"], view["title"])
button.set_group(self.initial_button)
self.window_buttons[view["id"]] = button
self.append(button)
@@ -83,6 +87,9 @@ class WFWindowList(panorama_panel.Applet):
self.remove(self.window_buttons[view["id"]])
self.window_buttons[view["id"]] = None
def focus_window_button(self, view):
self.window_buttons[view["id"]].set_active(True)
def on_wf_event(self, source, condition):
if condition == GLib.IO_IN:
try:
@@ -95,6 +102,8 @@ class WFWindowList(panorama_panel.Applet):
self.create_window_button(message["view"])
case "view-unmapped":
self.remove_window_button(message["view"])
case "view-focused":
self.focus_window_button(message["view"])
except Exception as e:
print("Error reading Wayfire event:", e)
return True