fix(globalmenu): hide dropdown when no app active

This commit is contained in:
sankalp committed 2026-08-14 00:01:33 +05:45
1 parent 8a212da9d5
commit f31c6df8db
1 file changed
+15 -6
+15 -6
View File
@@ -329,14 +329,15 @@ class GlobalMenuDropdowns:
self._system_dropdown = ModusDropdown(items=_create_system_menu())
self._system_menu = self._system_dropdown.menu
self._title_menu = _create_title_menu(modus_service.current_active_app_name)
self._title_menu = None
self.global_menu_button_title = Gtk.MenuButton(name="global-menu")
self.global_menu_button_title.get_style_context().add_class("flat")
self.global_menu_button_title.set_popup(self._title_menu)
self.global_menu_button_title.show_all()
setup_cursor_hover(self.global_menu_button_title, "pointer")
self._set_title_menu(modus_service.current_active_app_name)
self._active_window_ref = ActiveWindow(
formatter=FormattedString(
"{ format_window(win_title, win_class) }",
@@ -373,13 +374,21 @@ class GlobalMenuDropdowns:
if self._global_menu_svc:
self._global_menu_svc.click_item(item_id)
def _set_title_menu(self, app_name: str):
old_menu = self._title_menu
if app_name and app_name != "Modus":
self._title_menu = _create_title_menu(app_name)
self.global_menu_button_title.set_popup(self._title_menu)
else:
self._title_menu = None
self.global_menu_button_title.set_popup(None)
if old_menu is not None:
GLib.idle_add(old_menu.destroy)
def _on_active_app_changed(self, _, value):
logger.info(f"[GlobalMenu] Active app changed: {value}")
old_menu = self._title_menu
self._title_menu = _create_title_menu(value)
self.global_menu_button_title.set_popup(self._title_menu)
GLib.idle_add(old_menu.destroy)
self._set_title_menu(value)
if self._global_menu_svc:
wm_class = getattr(modus_service, "current_active_wm_class", "")