Ticket #2052: sdl_1210836.diff

File sdl_1210836.diff, 1.4 KB (added by cyxx, 15 years ago)
  • backends/sdl/graphics.cpp

    RCS file: /cvsroot/scummvm/scummvm/backends/sdl/graphics.cpp,v
    retrieving revision 1.49
    diff -u -r1.49 graphics.cpp
     
    14301430}
    14311431
    14321432void OSystem_SDL::undrawMouse() {
     1433        const int x = _mouseBackup.x;
     1434        const int y = _adjustAspectRatio ? aspect2Real(_mouseBackup.y) : _mouseBackup.y;
     1435       
    14331436        // When we switch bigger overlay off mouse jumps. Argh!
    1434         // this intended to prevent undrawing offscreen mouse
    1435         if (!_overlayVisible) {
    1436                 if (_adjustAspectRatio) {
    1437                         if (_mouseBackup.x > _screenWidth || aspect2Real(_mouseBackup.y) > _screenHeight)
    1438                                 return;
    1439                 } else {
    1440                         if (_mouseBackup.x > _screenWidth || _mouseBackup.y > _screenHeight)
    1441                                 return;
    1442                 }
     1437        // This is intended to prevent undrawing offscreen mouse
     1438        if (!_overlayVisible && (x >= _screenWidth || y >= _screenHeight)) {
     1439                return;
    14431440        }
    1444 
    1445         if (_mouseBackup.w) {
    1446                 if (_adjustAspectRatio)
    1447                         addDirtyRect(_mouseBackup.x, aspect2Real(_mouseBackup.y), _mouseBackup.w,
    1448                                                  _mouseBackup.h);
    1449                 else
    1450                         addDirtyRect(_mouseBackup.x, _mouseBackup.y, _mouseBackup.w,
    1451                                                  _mouseBackup.h);
     1441       
     1442        if (_mouseBackup.w != 0 && _mouseBackup.h != 0) {
     1443                addDirtyRect(x, y, _mouseBackup.w, _mouseBackup.h);
    14521444        }
    14531445}
    14541446