From 4aab05e3b3231f1ec9795a66a075d17a722634a7 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Tue, 25 Aug 2009 16:54:16 -0700 Subject: 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 --- hw/xfree86/modes/xf86Cursors.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hw/xfree86/modes/xf86Cursors.c b/hw/xfree86/modes/xf86Cursors.c index 8c5a94ca3..fc4df8477 100644 --- a/hw/xfree86/modes/xf86Cursors.c +++ b/hw/xfree86/modes/xf86Cursors.c @@ -639,9 +639,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); } } -- cgit v1.2.3