@@ -24,6 +24,7 @@ type windowManager struct {
2424 pointerPhase embedder.PointerPhase
2525 pixelsPerScreenCoordinate float64
2626 pointerCurrentlyAdded bool
27+ pointerButton embedder.PointerButtonMouse
2728}
2829
2930func 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
116117func (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