Skip to content

Commit cf94489

Browse files
committed
Fixed scroll and button clicks
1 parent 30d7bf7 commit cf94489

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

glfw.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ type windowManager struct {
2424
pointerPhase embedder.PointerPhase
2525
pixelsPerScreenCoordinate float64
2626
pointerCurrentlyAdded bool
27+
pointerButton embedder.PointerButtonMouse
2728
}
2829

2930
func newWindowManager() *windowManager {
@@ -50,6 +51,7 @@ func (m *windowManager) sendPointerEvent(window *glfw.Window, phase embedder.Poi
5051
X: x * m.pixelsPerScreenCoordinate,
5152
Y: y * m.pixelsPerScreenCoordinate,
5253
Timestamp: time.Now().UnixNano() / int64(time.Millisecond),
54+
Buttons: m.pointerButton,
5355
}
5456

5557
flutterEnginePointer := *(*uintptr)(window.GetUserPointer())
@@ -64,20 +66,18 @@ func (m *windowManager) sendPointerEvent(window *glfw.Window, phase embedder.Poi
6466
}
6567
}
6668

67-
func (m *windowManager) sendPointerEventButton(window *glfw.Window, phase embedder.PointerPhase, buttons embedder.PointerButtonMouse) {
69+
func (m *windowManager) sendPointerEventButton(window *glfw.Window, phase embedder.PointerPhase) {
6870
x, y := window.GetCursorPos()
6971
event := embedder.PointerEvent{
7072
Phase: phase,
7173
X: x * m.pixelsPerScreenCoordinate,
7274
Y: y * m.pixelsPerScreenCoordinate,
7375
Timestamp: time.Now().UnixNano() / int64(time.Millisecond),
7476
SignalKind: embedder.PointerSignalKindNone,
75-
Buttons: buttons,
77+
Buttons: m.pointerButton,
7678
}
77-
7879
flutterEnginePointer := *(*uintptr)(window.GetUserPointer())
7980
flutterEngine := (*embedder.FlutterEngine)(unsafe.Pointer(flutterEnginePointer))
80-
8181
flutterEngine.SendPointerEvent(event)
8282
}
8383

@@ -91,6 +91,7 @@ func (m *windowManager) sendPointerEventScroll(window *glfw.Window, xDelta, yDel
9191
SignalKind: embedder.PointerSignalKindScroll,
9292
ScrollDeltaX: xDelta,
9393
ScrollDeltaY: yDelta,
94+
Buttons: m.pointerButton,
9495
}
9596

9697
flutterEnginePointer := *(*uintptr)(window.GetUserPointer())
@@ -114,13 +115,14 @@ func (m *windowManager) glfwCursorPosCallback(window *glfw.Window, x, y float64)
114115
}
115116

116117
func (m *windowManager) handleButtonPhase(window *glfw.Window, action glfw.Action, buttons embedder.PointerButtonMouse) {
118+
m.pointerButton = buttons
117119
if action == glfw.Press {
118-
m.sendPointerEventButton(window, embedder.PointerPhaseDown, buttons)
120+
m.sendPointerEventButton(window, embedder.PointerPhaseDown)
119121
m.pointerPhase = embedder.PointerPhaseMove
120122
}
121123

122124
if action == glfw.Release {
123-
m.sendPointerEventButton(window, embedder.PointerPhaseUp, buttons)
125+
m.sendPointerEventButton(window, embedder.PointerPhaseUp)
124126
m.pointerPhase = embedder.PointerPhaseHover
125127
}
126128
}

0 commit comments

Comments
 (0)