Commit 418fe365 authored by Michel Dänzer's avatar Michel Dänzer Committed by Adam Jackson

xfree86/modes: Make sure the HW cursor is hidden when it should be

When the HW cursor is hidden (e.g. because xf86CursorResetCursor
triggers a switch from HW cursor to SW cursor), the driver isn't
notified of this for disabled CRTCs. If the HW cursor was shown when the
CRTC was disabled, it may still be displayed when the CRTC is enabled
again.

Prevent this by explicitly hiding the HW cursor again after setting a
mode if it's currently supposed to be hidden.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94560Reviewed-by: Adam Jackson's avatarAdam Jackson <ajax@redhat.com>
Signed-off-by: Michel Dänzer's avatarMichel Dänzer <michel.daenzer@amd.com>
parent adefbaee
......@@ -368,6 +368,12 @@ xf86CrtcSetModeTransform(xf86CrtcPtr crtc, DisplayModePtr mode,
xf86CrtcSetScreenSubpixelOrder(scrn->pScreen);
if (scrn->ModeSet)
scrn->ModeSet(scrn);
/* Make sure the HW cursor is hidden if it's supposed to be, in case
* it was hidden while the CRTC was disabled
*/
if (!xf86_config->cursor_on)
xf86_hide_cursors(scrn);
}
else {
crtc->x = saved_x;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment