[object Object]

← back to Ticket System

Track ticket tile mouse drags

ae36a776b012fc428af7c4528e255b31cf7a4b21 · 2026-09-02 14:49:01 -0700 · Steve Abrams

Files touched

Diff

commit ae36a776b012fc428af7c4528e255b31cf7a4b21
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed Sep 2 14:49:01 2026 -0700

    Track ticket tile mouse drags
---
 desktop-bar/TicketBar.swift | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/desktop-bar/TicketBar.swift b/desktop-bar/TicketBar.swift
index 5c7cceed..9e425a3d 100644
--- a/desktop-bar/TicketBar.swift
+++ b/desktop-bar/TicketBar.swift
@@ -44,10 +44,17 @@ private final class BarTile: NSButton {
   }
 
   required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") }
-  override func mouseDown(with event: NSEvent) { dragged = false; super.mouseDown(with: event) }
-  override func mouseDragged(with event: NSEvent) {
-    dragged = true
-    dragHandler?(key, event.locationInWindow.x)
+  override func mouseDown(with event: NSEvent) {
+    dragged = false
+    let start = event.locationInWindow
+    while let next = window?.nextEvent(matching: [.leftMouseDragged, .leftMouseUp]) {
+      if next.type == .leftMouseUp { break }
+      if abs(next.locationInWindow.x - start.x) > 3 {
+        dragged = true
+        dragHandler?(key, next.locationInWindow.x)
+      }
+    }
+    if !dragged { showDropdown() }
   }
   @objc private func showDropdown() {
     guard !dragged, let menu = menuProvider?() else { return }

← dc0248ea Use accessible buttons for ticket tiles  ·  back to Ticket System  ·  Accept direct ticket tile gestures 617aefbc →