roundabout,
created on Monday, 11 August 2025, 15:36:22 (1754926582),
received on Monday, 11 August 2025, 15:36:25 (1754926585)
Author identity: Vlad <vlad.muntoiu@gmail.com>
e88e202d3da558b8b2b5896f90e01b72b067a542
applets/wf-window-list/__init__.py
@@ -184,6 +184,58 @@ class WindowButton(Gtk.ToggleButton):
self.add_controller(self.drag_source) self.menu = Gio.Menu() self.minimise_item = Gio.MenuItem.new(_("_Minimise"), "button.minimise") self.maximise_item = Gio.MenuItem.new(_("Ma_ximise"), "button.maximise") self.menu.append_item(self.minimise_item) self.menu.append_item(self.maximise_item) self.menu.append(_("_Close"), "button.close") self.popover_menu = Gtk.PopoverMenu.new_from_model(self.menu) self.popover_menu.set_parent(self) self.popover_menu.set_flags(Gtk.PopoverMenuFlags.NESTED) self.popover_menu.set_has_arrow(False) self.popover_menu.set_halign(Gtk.Align.END) self.right_click_controller = Gtk.GestureClick(button=3) self.right_click_controller.connect("pressed", self.show_menu) self.add_controller(self.right_click_controller) self.action_group = Gio.SimpleActionGroup() close_action = Gio.SimpleAction.new("close") close_action.connect("activate", self.close_associated) self.action_group.insert(close_action) minimise_action = Gio.SimpleAction.new("minimise") minimise_action.connect("activate", self.minimise_associated) self.action_group.insert(minimise_action) maximise_action = Gio.SimpleAction.new("maximise") maximise_action.connect("activate", self.maximise_associated) self.action_group.insert(maximise_action) self.insert_action_group("button", self.action_group) def show_menu(self, gesture, n_presses, x, y): rect = Gdk.Rectangle() rect.x = int(x) rect.y = int(y) rect.width = 1 rect.height = 1 self.popover_menu.popup() def close_associated(self, action, *args): self.window_id.close() def minimise_associated(self, action, *args): if self.window_state.minimised: self.window_id.unset_minimized() else: self.window_id.set_minimized() def maximise_associated(self, action, *args): if self.window_state.maximised: self.window_id.unset_maximized() else: self.window_id.set_maximized() def provide_drag_data(self, source: Gtk.DragSource, x: float, y: float): app = self.get_root().get_application() app.drags[id(self)] = self