xf86_reload_cursors: fix cursor position to eliminate jumping after mode set

xf86_reload_cursors restores the cursor to the correct position, but
that must adjust for cursor hot spot and frame before calling down to
the hardware function, otherwise the cursor jumps to the wrong
position until it is repositioned by the user.

Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 4aab05e3b3)
This commit is contained in:
Keith Packard 2009-08-25 16:54:16 -07:00
parent 5848fca11f
commit cebc0a7aa7

View file

@ -640,9 +640,11 @@ xf86_reload_cursors (ScreenPtr screen)
(*cursor_info->LoadCursorARGB) (scrn, cursor);
else if (src)
#endif
(*cursor_info->LoadCursorImage)(cursor_info->pScrn, src);
(*cursor_info->LoadCursorImage)(scrn, src);
(*cursor_info->SetCursorPosition)(cursor_info->pScrn, x, y);
x += scrn->frameX0 + cursor_screen_priv->HotX;
y += scrn->frameY0 + cursor_screen_priv->HotY;
(*cursor_info->SetCursorPosition)(scrn, x, y);
}
}