roundabout,
created on Friday, 8 August 2025, 20:44:30 (1754685870),
received on Saturday, 9 August 2025, 12:22:38 (1754742158)
Author identity: Vlad <vlad.muntoiu@gmail.com>
97dfd6ea4858a5df462e9829ce3d44a7812d3263
applets/wf-window-list/__init__.py
@@ -305,16 +305,21 @@ class WFWindowList(panorama_panel.Applet):
try:
message = self.wf_socket.read_next_event()
event = message.get("event")
# print(message)
# TODO: moving to another workspace with the view doesn't update the list
# until another view is focused
match event:
case "view-workspace-changed":
view = message.get("view", {})
output = self.wf_socket.get_output(self.get_root().monitor_index + 1)
current_workspace = output["workspace"]["x"], output["workspace"]["y"]
if (message["to"]["x"], message["to"]["y"]) == current_workspace:
self.append(self.toplevel_buttons_by_wf_id[view["id"]])
if self.toplevel_buttons_by_wf_id[view["id"]].get_parent() is None:
self.append(self.toplevel_buttons_by_wf_id[view["id"]])
else:
# Remove out-of-workspace window
self.remove(self.toplevel_buttons_by_wf_id[view["id"]])
if self.toplevel_buttons_by_wf_id[view["id"]].get_parent() is self:
# Remove out-of-workspace window
self.remove(self.toplevel_buttons_by_wf_id[view["id"]])
case "wset-workspace-changed":
output_id = self.get_root().monitor_index + 1
if message["wset-data"]["output-id"] == output_id:
@@ -366,7 +371,7 @@ class WFWindowList(panorama_panel.Applet):
output_height = output["geometry"]["height"]
if 0 <= mid_x < output_width and 0 <= mid_y < output_height:
# It is in this workspace; keep it
if not button.get_realized():
if button.get_parent() is None:
self.append(button)
else:
# Remove it from this window list