mirror of
https://github.com/bloeys/nmage.git
synced 2025-12-29 13:28:20 +00:00
Go 1.22+fix input bug
This commit is contained in:
2
.github/workflows/build-nmage.yml
vendored
2
.github/workflows/build-nmage.yml
vendored
@ -12,7 +12,7 @@ jobs:
|
||||
- name: Install golang
|
||||
uses: actions/setup-go@v3
|
||||
with:
|
||||
go-version: '>=1.18'
|
||||
go-version: '>=1.22'
|
||||
|
||||
- name: Install assimp-go dylib
|
||||
run: sudo mkdir -p /usr/local/lib && sudo wget https://github.com/bloeys/assimp-go/releases/download/v0.4.2/libassimp_darwin_amd64.dylib -O /usr/local/lib/libassimp.5.dylib
|
||||
|
||||
@ -39,6 +39,14 @@ func (w *Window) handleInputs() {
|
||||
imguiCaptureMouse := imIo.WantCaptureMouse()
|
||||
imguiCaptureKeyboard := imIo.WantCaptureKeyboard()
|
||||
|
||||
if imguiCaptureMouse {
|
||||
input.ClearMouseState()
|
||||
}
|
||||
|
||||
if imguiCaptureKeyboard {
|
||||
input.ClearKeyboardState()
|
||||
}
|
||||
|
||||
for event := sdl.PollEvent(); event != nil; event = sdl.PollEvent() {
|
||||
|
||||
//Fire callbacks
|
||||
|
||||
2
go.mod
2
go.mod
@ -1,6 +1,6 @@
|
||||
module github.com/bloeys/nmage
|
||||
|
||||
go 1.18
|
||||
go 1.22
|
||||
|
||||
require github.com/veandco/go-sdl2 v0.4.35
|
||||
|
||||
|
||||
@ -40,15 +40,17 @@ var (
|
||||
|
||||
func EventLoopStart() {
|
||||
|
||||
for _, v := range keyMap {
|
||||
for k, v := range keyMap {
|
||||
v.IsPressedThisFrame = false
|
||||
v.IsReleasedThisFrame = false
|
||||
keyMap[k] = v
|
||||
}
|
||||
|
||||
for _, v := range mouseBtnMap {
|
||||
for k, v := range mouseBtnMap {
|
||||
v.IsPressedThisFrame = false
|
||||
v.IsReleasedThisFrame = false
|
||||
v.IsDoubleClicked = false
|
||||
mouseBtnMap[k] = v
|
||||
}
|
||||
|
||||
mouseMotion.XDelta = 0
|
||||
@ -60,6 +62,16 @@ func EventLoopStart() {
|
||||
quitRequested = false
|
||||
}
|
||||
|
||||
func ClearKeyboardState() {
|
||||
clear(keyMap)
|
||||
}
|
||||
|
||||
func ClearMouseState() {
|
||||
clear(mouseBtnMap)
|
||||
mouseMotion = mouseMotionState{}
|
||||
mouseWheel = mouseWheelState{}
|
||||
}
|
||||
|
||||
func HandleQuitEvent(e *sdl.QuitEvent) {
|
||||
quitRequested = true
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user