soreau,
created on Wednesday, 3 September 2025, 21:33:19 (1756935199),
received on Saturday, 6 September 2025, 21:54:28 (1757195668)
Author identity: Scott Moreau <oreaus@gmail.com>
96fcce38a6345c79bfb5fee91bb5b3f51feb1674
applets/wf-window-list/__init__.py
@@ -712,6 +712,13 @@ class WFWindowList(panorama_panel.Applet):
self.set_all_rectangles()
def foreign_toplevel_refresh(self):
for button in self.toplevel_buttons.values():
self.remove(button)
self.toplevel_buttons.clear()
self.toplevel_buttons_by_wf_id.clear()
def set_app_id(self, button, app_id):
button.app_id = app_id
button.set_icon_from_app_id(app_id)
main.py
@@ -615,6 +615,14 @@ class Panel(Gtk.Window):
applet.foreign_toplevel_closed(toplevel)
applet = applet.get_next_sibling()
def foreign_toplevel_refresh(self):
for area in (self.left_area, self.centre_area, self.right_area):
applet = area.get_first_child()
while applet:
applet.foreign_toplevel_refresh()
applet = applet.get_next_sibling()
def get_all_subclasses(klass: type) -> list[type]:
subclasses = []
for subclass in klass.__subclasses__():
@@ -773,6 +781,8 @@ class PanoramaPanel(Gtk.Application):
if not output.name.startswith("live-preview"):
if self.manager:
self.manager.destroy()
for panel in self.panels:
panel.foreign_toplevel_refresh()
self.wl_globals.remove(self.manager)
self.manager = self.registry.bind(self.foreign_toplevel_manager_id, ZwlrForeignToplevelManagerV1, self.foreign_toplevel_version)
self.manager.id = self.foreign_toplevel_manager_id
shared/panorama_panel.py
@@ -93,6 +93,9 @@ class Applet(Gtk.Box):
def foreign_toplevel_closed(self, toplevel):
pass
def foreign_toplevel_refresh(self):
pass
def track_popover(popover: Gtk.Popover):
popover.connect("show", lambda *args: _popover_shown(popover))