mirror of
https://github.com/storytold/craft-libs.git
synced 2026-10-31 15:49:54 +00:00
* docking: AppKit moves a native window for its bar drag on macOS Moving a native window with OuterPosition every frame jitters on macOS: the window's reported place and the pointer events disagree about where the window is. On macOS the bar press (or the start of a drag of a window's only tab or group) now sends ViewportCommand::StartDrag, which winit turns into performWindowDragWithEvent, and the dock area sends no OuterPosition for that drag. egui keeps running frames during the move, but the window's reported place lags it, so each frame takes the window's place as AppKit's cursor (NSEvent::mouseLocation) less the pressed point. Drop targets, the drag fade, cross-window routing and the drop use that point. The drag ends on the first frame where NSEvent::pressedMouseButtons or egui reports the release, and is resolved once; a desktop drop records cursor less grab. Ctrl/Cmd is read from AppKit's modifier flags, since AppKit sends no key events during the move, and Escape does not cancel the move. A press released within the click distance docks nothing. Windows, X11 and Wayland keep their paths. The window system seam (WindowSystem, formerly DesktopCursor) tells the cursor, the button, the modifiers and whether it moves windows. NativeHost models AppKit's move (moves_windows, held): the window follows the cursor at the grab and reports its place late. The app-driven cursor path from #325 and its stale-pointer model are removed, since macOS no longer takes that path. * docs: a cancel during an AppKit bar drag leaves the window moving