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>
This commit is contained in:
Keith Packard 2009-08-25 16:54:16 -07:00
parent 0f9ffc887c
commit 4aab05e3b3

View File

@ -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);
}
}