Fix for bug #1074931 (GUI: Starting games in fullscreen doesn't work), avoid one unneccessary redraw

svn-id: r15997
This commit is contained in:
Max Horn 2004-12-06 21:12:52 +00:00
parent 3fb09f9b1c
commit 954e16abbf

View file

@ -560,9 +560,9 @@ void OSystem_SDL::setFullscreenMode(bool enable) {
if (_fullscreen != enable) { if (_fullscreen != enable) {
assert(_hwscreen != 0); assert(_hwscreen != 0);
_fullscreen ^= true; _fullscreen ^= true;
undrawMouse(); undrawMouse();
#if defined(MACOSX) && !SDL_VERSION_ATLEAST(1, 2, 6) #if defined(MACOSX) && !SDL_VERSION_ATLEAST(1, 2, 6)
// On OS X, SDL_WM_ToggleFullScreen is currently not implemented. Worse, // On OS X, SDL_WM_ToggleFullScreen is currently not implemented. Worse,
// before SDL 1.2.6 it always returned -1 (which would indicate a // before SDL 1.2.6 it always returned -1 (which would indicate a
@ -573,14 +573,14 @@ void OSystem_SDL::setFullscreenMode(bool enable) {
if (!SDL_WM_ToggleFullScreen(_hwscreen)) { if (!SDL_WM_ToggleFullScreen(_hwscreen)) {
// if ToggleFullScreen fails, achieve the same effect with hotswap gfx mode // if ToggleFullScreen fails, achieve the same effect with hotswap gfx mode
hotswapGFXMode(); hotswapGFXMode();
} else {
// Blit everything to the screen
internUpdateScreen();
// Make sure that an EVENT_SCREEN_CHANGED gets sent later
_modeChanged = true;
} }
#endif #endif
// Blit everything to the screen
internUpdateScreen();
// Make sure that an EVENT_SCREEN_CHANGED gets sent later
_modeChanged = true;
} }
} }
@ -1147,7 +1147,7 @@ void OSystem_SDL::drawMouse() {
} }
void OSystem_SDL::undrawMouse() { void OSystem_SDL::undrawMouse() {
assert (_transactionMode == kTransactionNone); assert (_transactionMode == kTransactionNone || _transactionMode == kTransactionCommit);
if (!_mouseDrawn) if (!_mouseDrawn)
return; return;