X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fanim.c;h=363c76fc7197d4c74e17f7dcf74210f38fe2e7eb;hb=2aaf015a5b6264a47dd1da84ee2de1164752e9c2;hp=132ba13b4c490736c706b8cfe7310659107186d5;hpb=d40a3c067e0be6dcfb245b0793f872e3f33cca45;p=rocksndiamonds.git diff --git a/src/anim.c b/src/anim.c index 132ba13b..363c76fc 100644 --- a/src/anim.c +++ b/src/anim.c @@ -880,8 +880,13 @@ static boolean SetGlobalAnimPart_Viewport(struct GlobalAnimPartControlInfo *part int mx = MIN(MAX(0, gfx.mouse_x), WIN_XSIZE - 1); int my = MIN(MAX(0, gfx.mouse_y), WIN_YSIZE - 1); - viewport_x = mx + part->control_info.x; - viewport_y = my + part->control_info.y; + // prevent displaying off-screen custom mouse cursor in upper left corner + if (gfx.mouse_x == POS_OFFSCREEN && + gfx.mouse_y == POS_OFFSCREEN) + mx = my = POS_OFFSCREEN; + + viewport_x = mx - part->control_info.x; + viewport_y = my - part->control_info.y; viewport_width = part->graphic_info.width; viewport_height = part->graphic_info.height; @@ -933,7 +938,8 @@ static boolean SetGlobalAnimPart_Viewport(struct GlobalAnimPartControlInfo *part part->viewport_width = viewport_width; part->viewport_height = viewport_height; - changed = TRUE; + if (part->control_info.class != get_hash_from_key("pointer")) + changed = TRUE; } return changed;