diff --git a/settings/hyprland.nix b/settings/hyprland.nix index a2e8a80..8046d3b 100644 --- a/settings/hyprland.nix +++ b/settings/hyprland.nix @@ -1007,12 +1007,21 @@ in if (bar.activeDropdown) { bar.activeDropdown.resetAutoClose(); if (modelData.hasMenu && !(bar.activeDropdown === contextMenu && contextMenu.trayItem === modelData)) { - bar.toggleDropdown(contextMenu, function() { + if (bar.activeDropdown === contextMenu) { + // Same dropdown, just switch content let pos = parent.mapToItem(bar.contentItem, parent.width / 2, 0); contextMenu.dropdownX = pos.x; contextMenu.trayItem = modelData; menuOpener.menu = modelData.menu; - }); + contextMenu.resetAutoClose(); + } else { + bar.toggleDropdown(contextMenu, function() { + let pos = parent.mapToItem(bar.contentItem, parent.width / 2, 0); + contextMenu.dropdownX = pos.x; + contextMenu.trayItem = modelData; + menuOpener.menu = modelData.menu; + }); + } } } }