Possible fix for recent cursor regressions
|Reported by:||eriktorbjorn||Owned by:||sev-|
The recent GUI changes appear to have introduced a couple of regressions with in-game cursors:
* Hotspots are off, except with the 1x scaler. * Cursor position is not adjusted by the "shake position".
This patch attempts to fix both, while at the same time simplifying the code a bit. But I'm not as familiar with the cursor handling as I should be, so I'm not sure I got it right.
The general idea is that I'm trying to calculate a _mouseBackup rect in unscaled, unadjusted coordinates. I'm not sure how this interacts with cursor scaling, though, so please take a closer look at that.
Once we have the unscaled dimensions, we adjust them by scale, shake position and aspect ratio correction, and use them for blitting the pre-scaled image.
I've made a slight change to addDirtyRect() so that if the clipped rect is outside the screen, it's not added. This eliminates the need for clipping _mouseBackup. We don't need to clip the pre-scaled cursor image either, since SDL_BlitSurface() should handle that by itself.
Ticket imported from: #1491859. Ticket imported from: patches/639.