quickshell: fix border timing and right-aligned overlap

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
rope 2026-05-27 16:03:27 +01:00
parent 8843bfc830
commit d472ab3444

View file

@ -682,12 +682,10 @@ in
if (activeDropdown && activeDropdown.visible) { if (activeDropdown && activeDropdown.visible) {
activeDropdown.animateClose(); activeDropdown.animateClose();
} }
activeDropdown = null;
} }
function toggleDropdown(dd, setupFn) { function toggleDropdown(dd, setupFn) {
if (dd.visible && !dd.closing) { if (dd.visible && !dd.closing) {
dd.animateClose(); dd.animateClose();
activeDropdown = null;
} else { } else {
if (activeDropdown && activeDropdown !== dd && activeDropdown.visible) { if (activeDropdown && activeDropdown !== dd && activeDropdown.visible) {
activeDropdown.animateClose(); activeDropdown.animateClose();
@ -1262,7 +1260,7 @@ in
Timer { Timer {
id: _closeDelay id: _closeDelay
interval: 230 interval: 230
onTriggered: { dropdown.visible = false; dropdown.closing = false; } onTriggered: { dropdown.visible = false; dropdown.closing = false; if (bar.activeDropdown === dropdown) bar.activeDropdown = null; }
} }
HoverHandler { HoverHandler {
@ -1363,7 +1361,8 @@ in
ctx.arc(r + 0.5, h - r - 0.5, r, Math.PI, Math.PI / 2, true); ctx.arc(r + 0.5, h - r - 0.5, r, Math.PI, Math.PI / 2, true);
// Bottom edge // Bottom edge
if (dropdown.alignRight) { if (dropdown.alignRight) {
ctx.lineTo(w, h - 0.5); // Stop 8px before right edge bottom-right ear continues
ctx.lineTo(w - r, h - 0.5);
} else { } else {
ctx.lineTo(w - r - 0.5, h - 0.5); ctx.lineTo(w - r - 0.5, h - 0.5);
// Bottom-right curve // Bottom-right curve