diff options
Diffstat (limited to 'backends/platform/sdl')
| -rw-r--r-- | backends/platform/sdl/graphics.cpp | 5 | 
1 files changed, 3 insertions, 2 deletions
diff --git a/backends/platform/sdl/graphics.cpp b/backends/platform/sdl/graphics.cpp index 35c5b57db6..a97a153f3c 100644 --- a/backends/platform/sdl/graphics.cpp +++ b/backends/platform/sdl/graphics.cpp @@ -783,7 +783,8 @@ void OSystem_SDL::internUpdateScreen() {  #endif  	// If the shake position changed, fill the dirty area with blackness -	if (_currentShakePos != _newShakePos) { +	if (_currentShakePos != _newShakePos ||  +		(_mouseNeedsRedraw && _mouseBackup.y <= _currentShakePos)) {  		SDL_Rect blackrect = {0, 0, _videoMode.screenWidth * _videoMode.scaleFactor, _newShakePos * _videoMode.scaleFactor};  		if (_videoMode.aspectRatioCorrection && !_overlayVisible) @@ -1681,7 +1682,7 @@ void OSystem_SDL::undrawMouse() {  		return;  	if (_mouseBackup.w != 0 && _mouseBackup.h != 0) -		addDirtyRect(x, y, _mouseBackup.w, _mouseBackup.h); +		addDirtyRect(x, y - _currentShakePos, _mouseBackup.w, _mouseBackup.h);  }  void OSystem_SDL::drawMouse() {  | 
