search-menu: prevent duplicate buttons, add
roundabout,
created on Tuesday, 9 September 2025, 16:39:12 (1757435952),
received on Tuesday, 9 September 2025, 16:39:14 (1757435954)
Author identity: Vlad <vlad.muntoiu@gmail.com>
5b8b92f09fdcf763e25a29644293b4928a3ea6e1
applets/search-menu/__init__.py
@@ -165,6 +165,8 @@ class SearchMenu(panorama_panel.Applet):
self.flowbox = Gtk.FlowBox()
self.flowbox.set_valign(Gtk.Align.START)
self.flowbox.set_homogeneous(True)
self.flowbox.set_max_children_per_line(config.get("icons_per_line", 3))
self.flowbox.set_min_children_per_line(config.get("icons_per_line", 3))
self.flowbox_item_focus_signal = self.flowbox.connect("selected-children-changed", self.on_flowbox_item_focus)
self.scrolled_window = Gtk.ScrolledWindow()
self.scrolled_window.set_size_request(-1, config.get("height", 360))
@@ -224,6 +226,7 @@ class SearchMenu(panorama_panel.Applet):
"height": self.scrolled_window.get_size_request()[1],
"icon_name": self.image.get_icon_name(),
"icon_size": self.image.get_pixel_size(),
"icons_per_line": self.flowbox.get_max_children_per_line()
}
def on_popover_popup(self, parent):
@@ -240,6 +243,7 @@ class SearchMenu(panorama_panel.Applet):
app_infos = Gio.AppInfo.get_all()
app_infos.sort(key=lambda app_info: app_info.get_display_name().lower())
self.cached_buttons = []
self.flowbox.remove_all()
for app_info in app_infos:
app_categories = app_info.get_categories()
@@ -252,7 +256,6 @@ class SearchMenu(panorama_panel.Applet):
app_button.set_tooltip_text(app_name)
app_label = Gtk.Label(label=app_name)
app_label.set_ellipsize(Pango.EllipsizeMode.END)
app_label.set_max_width_chars(7)
app_button_box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
app_button_box.append(app_label)
app_button.set_child(app_button_box)