roundabout,
created on Friday, 15 August 2025, 20:38:08 (1755290288),
received on Friday, 15 August 2025, 20:38:11 (1755290291)
Author identity: Vlad <vlad.muntoiu@gmail.com>
54f214f47027d8ef753eb0a1838044d90c917186
applets/wf-window-list/__init__.py
@@ -61,6 +61,7 @@ gtk = ffi.dlopen("libgtk-4.so.1")
class WindowListOptions(Gtk.Window): __gtype_name__ = "WindowListOptions" button_width_adjustment: Gtk.Adjustment = Gtk.Template.Child() workspace_filter_checkbutton: Gtk.CheckButton = Gtk.Template.Child()def __init__(self, **kwargs): super().__init__(**kwargs)
@@ -363,7 +364,7 @@ class WFWindowList(panorama_panel.Applet):
def on_wf_event(self, source, condition): if condition & GLib.IO_IN: if not self.show_only_this_wf_workspace: returnreturn Truetry: message = self.wf_socket.read_next_event() event = message.get("event")
@@ -618,6 +619,8 @@ class WFWindowList(panorama_panel.Applet):
self.options_window = WindowListOptions() self.options_window.button_width_adjustment.set_value(self.window_button_options.max_width) self.options_window.button_width_adjustment.connect("value-changed", self.update_button_options) self.options_window.workspace_filter_checkbutton.set_active(self.show_only_this_wf_workspace) self.options_window.workspace_filter_checkbutton.connect("toggled", self.update_workspace_filter)def reset_window(*args): self.options_window = None
@@ -625,6 +628,18 @@ class WFWindowList(panorama_panel.Applet):
self.options_window.connect("close-request", reset_window) self.options_window.present() def remove_workspace_filtering(self): for button in self.toplevel_buttons.values(): if button.get_parent() is None: self.append(button) def update_workspace_filter(self, checkbutton): self.show_only_this_wf_workspace = checkbutton.get_active() if checkbutton.get_active(): self.filter_to_wf_workspace() else: self.remove_workspace_filtering() def update_button_options(self, adjustment): self.window_button_options.max_width = adjustment.get_value() child: Gtk.Widget = self.get_first_child()
applets/wf-window-list/panorama-window-list-options.ui
@@ -83,6 +83,46 @@ along with this program. If not, see <https://www.gnu.org/licenses/>. -->
</child> </object> </child> <child> <object class="GtkFrame"> <property name="label-widget"> <object class="GtkLabel"> <property name="label" translatable="yes">Windows to show</property> <attributes> <attribute name="weight" value="bold"/> </attributes> </object> </property> <child> <object class="GtkListBox"> <property name="selection-mode">none</property> <child> <object class="GtkListBoxRow"> <property name="activatable">False</property> <child> <object class="GtkBox"> <child> <object class="GtkLabel"> <property name="halign">start</property> <property name="hexpand">True</property> <property name="label" translatable="yes">Show only windows on this workspace</property> <property name="use-markup">True</property> <property name="wrap">True</property> </object> </child> <child> <object class="GtkCheckButton" id="workspace_filter_checkbutton"> <signal name="activate" handler="workspace_filter_changed"/> </object> </child> </object> </child> </object> </child> </object> </child> </object> </child></object> </child> </object>
applets/wf-window-list/panorama-window-list.cmb
@@ -2,5 +2,5 @@
<!DOCTYPE cambalache-project SYSTEM "cambalache-project.dtd"> <!-- Created with Cambalache 0.96.1 --> <cambalache-project version="0.96.0" target_tk="gtk-4.0"> <ui template-class="WindowListOptions" filename="panorama-window-list-options.ui" sha256="e6cdf67148fbc801397fdef5ceb66c558cd4b1dad19dc1d5ef94af454c0afd0b"/><ui template-class="WindowListOptions" filename="panorama-window-list-options.ui" sha256="f46a850a22d34bff26a2319aae3c29fcda38cff86bb778cfaf5fbac948537628"/></cambalache-project>