#559618 boswars: Toggling Fullscreen with the space key in Video Options makes it change back immediately

Package:
boswars
Source:
boswars
Description:
futuristic real-time strategy game
Submitter:
Kalle Olavi Niemitalo
Date:
2023-07-08 14:24:03 UTC
Severity:
minor
Tags:
#559618#5
Date:
2009-12-05 18:12:22 UTC
From:
To:
In the Video Options screen of BOS Wars, there is a check box labeled Fullscreen.  If I press the Tab key enough times to move the focus to that, and then press the Space key, the game indeed switches to full-screen mode but then immediately switches back to windowed mode.  Likewise, if I have checked the box with a pointing device and then press the Space key, the game switches to windowed mode but immediately back to full-screen mode.

Severity = minor because changing the check box with a pointing device works OK and this game practically requires one anyway.

I run a custom build of Mesa here to enable r600 support.  That should however have no effect on this bug because I did not enable OpenGL in BOS Wars.

#559618#10
Date:
2009-12-19 23:59:46 UTC
From:
To:
Kalle Olavi Niemitalo <kon@iki.fi> writes:

I debugged this now (over ssh so I could set breakpoints without
causing keyboard events) and found that the keypress event gets
duplicated in gcn::SDLInput::processKeyRepeat, thus causing two
separate calls to the Lua code and ultimately to ToggleFullScreen.

I guess the video mode switch takes so long that Bos Wars thinks
they key should repeat ... even though it has actually been
released already.  The easiest fix might be to make the checkbox
widget change its state not on key press events but rather on key
release events, which are not duplicated in this way.

It would be cleaner not to generate the repeated events in the
first place, but I don't know how difficult it would be to detect
at that point of time that the key has already been released.  It
might be just a matter of asking SDL or it might not; the
checkbox widget change would be easier to get reliably right.

#559618#15
Date:
2023-07-08 14:21:53 UTC
From:
To:
control: tag -1 +fixed-upstream

This has been fixed upstream:

https://codeberg.org/boswars/boswars/commit/0ef4a1afe890d6c0cddc7393a0e29ecea274c054