Skip to content

Commit d4878b0

Browse files
fuddlesworthruvnet
andcommitted
fix(overlay): prevent layout picker double-trigger on rapid shortcut press
Replace toggle guard with simple existence guard so the shortcut only shows the picker if no window exists, preventing deleteLater() races and stale KeyboardInteractivityExclusive grabs on Wayland. Co-Authored-By: claude-flow <ruv@ruv.net>
1 parent 35d872e commit d4878b0

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

src/daemon/overlayservice.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3065,9 +3065,10 @@ void OverlayService::onSnapAssistWindowSelected(const QString& windowId, const Q
30653065

30663066
void OverlayService::showLayoutPicker(const QString& screenName)
30673067
{
3068-
// Toggle: if already visible, dismiss instead of recreating
3069-
if (isLayoutPickerVisible()) {
3070-
hideLayoutPicker();
3068+
// Guard: if picker window already exists (visible or being set up), do nothing.
3069+
// Prevents double-trigger when shortcut fires before KeyboardInteractivityExclusive
3070+
// grabs the keyboard on Wayland, and avoids deleteLater() races with stale grabs.
3071+
if (m_layoutPickerWindow) {
30713072
return;
30723073
}
30733074

0 commit comments

Comments
 (0)