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.
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.
control: tag -1 +fixed-upstream This has been fixed upstream: https://codeberg.org/boswars/boswars/commit/0ef4a1afe890d6c0cddc7393a0e29ecea274c054