diff --git a/internal/uidriver/glfw/ui.go b/internal/uidriver/glfw/ui.go index fd0247b83..dc326ae43 100644 --- a/internal/uidriver/glfw/ui.go +++ b/internal/uidriver/glfw/ui.go @@ -910,10 +910,13 @@ func (u *UserInterface) update() (float64, float64, bool, error) { // Calling this inside setWindowSize didn't work (#1363). if !u.vsyncInited { u.vsync = u.isInitVsyncEnabled() - u.updateVsync() u.vsyncInited = true } + // Call updateVsync regardless of vsyncInited. + // When toggling to fullscreen, vsync state might be reset unexpectedly (#1787). + u.updateVsync() + outsideWidth, outsideHeight, outsideSizeChanged := u.updateSize() // TODO: Updating the input can be skipped when clock.Update returns 0 (#1367).