LavaUI docs GitHub

enum PointerCapture

Swift

enum PointerCapture

Routes pointer motion to whichever node started a drag.

Without capture, a drag that leaves the field's bounds would stop extending the selection — the hit test would simply miss. Capture is what makes "press inside, drag anywhere" behave the way every text control does.

Sources/LavaUI/Focus.swift:294

Properties

static var isActive: Bool { get }

Whether some node holds the pointer capture.

Sources/LavaUI/Focus.swift:300

Methods

static func capture(_ id: NodeID, onMove: @escaping (Float, Float) -> Void, onUp: @escaping () -> Void = {})

Routes pointer motion to id until release, wherever the pointer goes.

onMove gets window coordinates. onUp runs on release, after the capture is dropped, so it may start another capture.

Sources/LavaUI/Focus.swift:306

static func move(x: Float, y: Float)

Window coordinates; the owner converts to its own space.

Sources/LavaUI/Focus.swift:326

static func release()

Ends the capture and runs its onUp. The frame loop calls this on release.

Sources/LavaUI/Focus.swift:331