|
@@ -107,40 +107,40 @@ class VMMetalView: MTKView {
|
|
|
|
|
|
override func mouseDown(with event: NSEvent) {
|
|
|
logger.trace("mouse down: \(event.buttonNumber)")
|
|
|
- inputDelegate?.mouseDown(button: .left)
|
|
|
+ inputDelegate?.mouseDown(button: .left, mask: NSEvent.pressedMouseButtons.inputButtons())
|
|
|
}
|
|
|
|
|
|
override func rightMouseDown(with event: NSEvent) {
|
|
|
logger.trace("right mouse down: \(event.buttonNumber)")
|
|
|
- inputDelegate?.mouseDown(button: .right)
|
|
|
+ inputDelegate?.mouseDown(button: .right, mask: NSEvent.pressedMouseButtons.inputButtons())
|
|
|
}
|
|
|
|
|
|
override func otherMouseDown(with event: NSEvent) {
|
|
|
logger.trace("other mouse down: \(event.buttonNumber)")
|
|
|
switch event.buttonNumber {
|
|
|
- case 2: inputDelegate?.mouseDown(button: .middle)
|
|
|
- case 3: inputDelegate?.mouseDown(button: .side)
|
|
|
- case 4: inputDelegate?.mouseDown(button: .extra)
|
|
|
+ case 2: inputDelegate?.mouseDown(button: .middle, mask: NSEvent.pressedMouseButtons.inputButtons())
|
|
|
+ case 3: inputDelegate?.mouseDown(button: .side, mask: NSEvent.pressedMouseButtons.inputButtons())
|
|
|
+ case 4: inputDelegate?.mouseDown(button: .extra, mask: NSEvent.pressedMouseButtons.inputButtons())
|
|
|
default: break
|
|
|
}
|
|
|
}
|
|
|
|
|
|
override func mouseUp(with event: NSEvent) {
|
|
|
logger.trace("mouse up: \(event.buttonNumber)")
|
|
|
- inputDelegate?.mouseUp(button: .left)
|
|
|
+ inputDelegate?.mouseUp(button: .left, mask: NSEvent.pressedMouseButtons.inputButtons())
|
|
|
}
|
|
|
|
|
|
override func rightMouseUp(with event: NSEvent) {
|
|
|
logger.trace("right mouse up: \(event.buttonNumber)")
|
|
|
- inputDelegate?.mouseUp(button: .right)
|
|
|
+ inputDelegate?.mouseUp(button: .right, mask: NSEvent.pressedMouseButtons.inputButtons())
|
|
|
}
|
|
|
|
|
|
override func otherMouseUp(with event: NSEvent) {
|
|
|
logger.trace("other mouse up: \(event.buttonNumber)")
|
|
|
switch event.buttonNumber {
|
|
|
- case 2: inputDelegate?.mouseUp(button: .middle)
|
|
|
- case 3: inputDelegate?.mouseUp(button: .side)
|
|
|
- case 4: inputDelegate?.mouseUp(button: .extra)
|
|
|
+ case 2: inputDelegate?.mouseUp(button: .middle, mask: NSEvent.pressedMouseButtons.inputButtons())
|
|
|
+ case 3: inputDelegate?.mouseUp(button: .side, mask: NSEvent.pressedMouseButtons.inputButtons())
|
|
|
+ case 4: inputDelegate?.mouseUp(button: .extra, mask: NSEvent.pressedMouseButtons.inputButtons())
|
|
|
default: break
|
|
|
}
|
|
|
}
|
|
@@ -261,12 +261,12 @@ class VMMetalView: MTKView {
|
|
|
logger.trace("mouse moved: \(event.deltaX), \(event.deltaY)")
|
|
|
if isMouseCaptured {
|
|
|
inputDelegate?.mouseMove(relativePoint: CGPoint(x: event.deltaX, y: -event.deltaY),
|
|
|
- button: NSEvent.pressedMouseButtons.inputButtons())
|
|
|
+ buttonMask: NSEvent.pressedMouseButtons.inputButtons())
|
|
|
} else {
|
|
|
let location = event.locationInWindow
|
|
|
let converted = convert(location, from: nil)
|
|
|
inputDelegate?.mouseMove(absolutePoint: converted,
|
|
|
- button: NSEvent.pressedMouseButtons.inputButtons())
|
|
|
+ buttonMask: NSEvent.pressedMouseButtons.inputButtons())
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -274,7 +274,7 @@ class VMMetalView: MTKView {
|
|
|
guard event.deltaY != 0 else { return }
|
|
|
logger.trace("scroll: \(event.deltaY)")
|
|
|
inputDelegate?.mouseScroll(dy: event.deltaY,
|
|
|
- button: NSEvent.pressedMouseButtons.inputButtons())
|
|
|
+ buttonMask: NSEvent.pressedMouseButtons.inputButtons())
|
|
|
}
|
|
|
|
|
|
override func acceptsFirstMouse(for event: NSEvent?) -> Bool {
|
|
@@ -284,7 +284,7 @@ class VMMetalView: MTKView {
|
|
|
if let location = event?.locationInWindow {
|
|
|
let converted = convert(location, from: nil)
|
|
|
inputDelegate?.mouseMove(absolutePoint: converted,
|
|
|
- button: NSEvent.pressedMouseButtons.inputButtons())
|
|
|
+ buttonMask: NSEvent.pressedMouseButtons.inputButtons())
|
|
|
}
|
|
|
return true
|
|
|
}
|
|
@@ -385,6 +385,12 @@ private extension Int {
|
|
|
if self & (1 << 2) != 0 {
|
|
|
pressed.formUnion(.middle)
|
|
|
}
|
|
|
+ if self & (1 << 3) != 0 {
|
|
|
+ pressed.formUnion(.side)
|
|
|
+ }
|
|
|
+ if self & (1 << 4) != 0 {
|
|
|
+ pressed.formUnion(.extra)
|
|
|
+ }
|
|
|
return pressed
|
|
|
}
|
|
|
}
|