mirror of
https://github.com/X11Libre/xserver.git
synced 2026-04-14 17:18:09 +00:00
modesetting: fix shadow resizing.
if we hotplugged and output, the shadow got disabled by accident. Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
@@ -984,8 +984,21 @@ drmmode_xf86crtc_resize (ScrnInfoPtr scrn, int width, int height)
|
||||
if (!new_pixels)
|
||||
goto fail;
|
||||
|
||||
screen->ModifyPixmapHeader(ppix, width, height, -1, -1,
|
||||
pitch, new_pixels);
|
||||
if (!drmmode->shadow_enable)
|
||||
screen->ModifyPixmapHeader(ppix, width, height, -1, -1,
|
||||
pitch, new_pixels);
|
||||
else {
|
||||
void *new_shadow;
|
||||
uint32_t size = scrn->displayWidth * scrn->virtualY *
|
||||
((scrn->bitsPerPixel + 7) >> 3);
|
||||
new_shadow = calloc(1, size);
|
||||
if (new_shadow == NULL)
|
||||
goto fail;
|
||||
free(drmmode->shadow_fb);
|
||||
drmmode->shadow_fb = new_shadow;
|
||||
screen->ModifyPixmapHeader(ppix, width, height, -1, -1,
|
||||
pitch, drmmode->shadow_fb);
|
||||
}
|
||||
|
||||
#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1,9,99,1,0)
|
||||
scrn->pixmapPrivate.ptr = ppix->devPrivate.ptr;
|
||||
|
||||
Reference in New Issue
Block a user