X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fevents.c;h=085dd9ff4c3c3fccf9a875a2e878de96ced3e0b5;hp=1e39b67bc57a7489beb9c78376d3a11486e65564;hb=fb04dd34fca520cfcac737fc1352a807331ea72d;hpb=8b77194545721f4b8e3f80b59da8423ab2d90dae diff --git a/src/events.c b/src/events.c index 1e39b67b..085dd9ff 100644 --- a/src/events.c +++ b/src/events.c @@ -103,6 +103,15 @@ static int FilterEvents(const Event *event) cursor_inside_playfield = (motion->x >= SX && motion->x < SX + SXSIZE && motion->y >= SY && motion->y < SY + SYSIZE); + // set correct mouse x/y position (for pointer class global animations) + // (this is required in rare cases where the mouse x/y position calculated + // from raw values (to apply logical screen size scaling corrections) does + // not match the final mouse event x/y position -- this may happen because + // the SDL renderer's viewport position is internally represented as float, + // but only accessible as integer, which may lead to rounding errors) + gfx.mouse_x = motion->x; + gfx.mouse_y = motion->y; + // do no reset mouse cursor before all pending events have been processed if (gfx.cursor_mode == cursor_mode_last && ((game_status == GAME_MODE_TITLE &&