diff --git a/app/os_windows.go b/app/os_windows.go index 0a44fdd0..ca1e92aa 100644 --- a/app/os_windows.go +++ b/app/os_windows.go @@ -304,16 +304,17 @@ func windowProc(hwnd syscall.Handle, msg uint32, wParam, lParam uintptr) uintptr x, y := coordsFromlParam(lParam) p := f32.Point{X: float32(x), Y: float32(y)} w.w.Event(pointer.Event{ - Type: pointer.Move, - Source: pointer.Mouse, - Position: p, - Buttons: w.pointerBtns, - Time: windows.GetMessageTime(), + Type: pointer.Move, + Source: pointer.Mouse, + Position: p, + Buttons: w.pointerBtns, + Time: windows.GetMessageTime(), + Modifiers: getModifiers(), }) case windows.WM_MOUSEWHEEL: - w.scrollEvent(wParam, lParam, false) + w.scrollEvent(wParam, lParam, false, getModifiers()) case windows.WM_MOUSEHWHEEL: - w.scrollEvent(wParam, lParam, true) + w.scrollEvent(wParam, lParam, true, getModifiers()) case windows.WM_DESTROY: w.w.Event(ViewEvent{}) w.w.Event(system.DestroyEvent{}) @@ -518,7 +519,7 @@ func coordsFromlParam(lParam uintptr) (int, int) { return x, y } -func (w *window) scrollEvent(wParam, lParam uintptr, horizontal bool) { +func (w *window) scrollEvent(wParam, lParam uintptr, horizontal bool, kmods key.Modifiers) { x, y := coordsFromlParam(lParam) // The WM_MOUSEWHEEL coordinates are in screen coordinates, in contrast // to other mouse events. @@ -533,12 +534,13 @@ func (w *window) scrollEvent(wParam, lParam uintptr, horizontal bool) { sp.Y = -dist } w.w.Event(pointer.Event{ - Type: pointer.Scroll, - Source: pointer.Mouse, - Position: p, - Buttons: w.pointerBtns, - Scroll: sp, - Time: windows.GetMessageTime(), + Type: pointer.Scroll, + Source: pointer.Mouse, + Position: p, + Buttons: w.pointerBtns, + Scroll: sp, + Modifiers: kmods, + Time: windows.GetMessageTime(), }) }