examples/windowsize: Bug fix: Suppress calling SetWindowPosition if the position is not updated

This is a temoprary fix for the issue that the window size unexpectedly
shrunk on Linux.

Updates #1607
Closes #1605
This commit is contained in:
Hajime Hoshi 2021-04-20 20:47:56 +09:00
parent 47f569e473
commit 34be0371be

View File

@ -134,6 +134,7 @@ func (g *game) Update() error {
const d = 16
toUpdateWindowSize := false
toUpdateWindowPosition := false
if ebiten.IsKeyPressed(ebiten.KeyShift) {
if inpututil.IsKeyJustPressed(ebiten.KeyArrowDown) {
screenHeight += d
@ -158,15 +159,19 @@ func (g *game) Update() error {
} else {
if inpututil.IsKeyJustPressed(ebiten.KeyArrowUp) {
positionY -= d
toUpdateWindowPosition = true
}
if inpututil.IsKeyJustPressed(ebiten.KeyArrowDown) {
positionY += d
toUpdateWindowPosition = true
}
if inpututil.IsKeyJustPressed(ebiten.KeyArrowLeft) {
positionX -= d
toUpdateWindowPosition = true
}
if inpututil.IsKeyJustPressed(ebiten.KeyArrowRight) {
positionX += d
toUpdateWindowPosition = true
}
}
if inpututil.IsKeyJustPressed(ebiten.KeyS) && !*flagAutoAdjusting {
@ -250,7 +255,9 @@ func (g *game) Update() error {
}
ebiten.SetMaxTPS(tps)
ebiten.SetWindowDecorated(decorated)
ebiten.SetWindowPosition(positionX, positionY)
if toUpdateWindowPosition {
ebiten.SetWindowPosition(positionX, positionY)
}
ebiten.SetWindowFloating(floating)
ebiten.SetScreenClearedEveryFrame(screenCleared)
if maximize && ebiten.IsWindowResizable() {