Commit 806a537e authored by Keith Packard's avatar Keith Packard
Browse files

Revert "Suppress software cursor removal during rotated shadow buffer drawing."

This reverts commit 999b681c.
Replacing this with simpler code that just disables SourceValidate
during rotation redisplay.
parent 0a9239ec
......@@ -39,7 +39,6 @@
#include "xf86Crtc.h"
#include "xf86Modes.h"
#include "xf86RandR12.h"
#include "misprite.h"
#include "X11/extensions/render.h"
#define DPMS_SERVER
#include "X11/extensions/dpms.h"
......@@ -280,11 +279,7 @@ xf86RotateRedisplay(ScreenPtr pScreen)
if (REGION_NOTEMPTY(pScreen, region))
{
int c;
#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(7,2,0,0,dummy)
/* Disable software cursor removal for this drawing */
miSpriteDrawInternal(pScreen, TRUE);
#endif
for (c = 0; c < xf86_config->num_crtc; c++)
{
xf86CrtcPtr crtc = xf86_config->crtc[c];
......@@ -309,9 +304,6 @@ xf86RotateRedisplay(ScreenPtr pScreen)
REGION_UNINIT (pScreen, &crtc_damage);
}
}
#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(7,2,0,0,dummy)
miSpriteDrawInternal(pScreen, FALSE);
#endif
DamageEmpty(damage);
}
}
......
......@@ -288,8 +288,7 @@ miSpriteGetImage (pDrawable, sx, sy, w, h, format, planemask, pdstLine)
pScreenPriv = (miSpriteScreenPtr) pScreen->devPrivates[miSpriteScreenIndex].ptr;
if (pScreenPriv->internalDraw == 0 &&
pDrawable->type == DRAWABLE_WINDOW &&
if (pDrawable->type == DRAWABLE_WINDOW &&
pScreenPriv->isUp &&
ORG_OVERLAP(&pScreenPriv->saved,pDrawable->x,pDrawable->y, sx, sy, w, h))
{
......@@ -319,8 +318,7 @@ miSpriteGetSpans (pDrawable, wMax, ppt, pwidth, nspans, pdstStart)
pScreenPriv = (miSpriteScreenPtr) pScreen->devPrivates[miSpriteScreenIndex].ptr;
if (pScreenPriv->internalDraw == 0 &&
pDrawable->type == DRAWABLE_WINDOW && pScreenPriv->isUp)
if (pDrawable->type == DRAWABLE_WINDOW && pScreenPriv->isUp)
{
DDXPointPtr pts;
int *widths;
......@@ -362,8 +360,7 @@ miSpriteSourceValidate (pDrawable, x, y, width, height)
pScreenPriv = (miSpriteScreenPtr) pScreen->devPrivates[miSpriteScreenIndex].ptr;
if (pScreenPriv->internalDraw == 0 &&
pDrawable->type == DRAWABLE_WINDOW && pScreenPriv->isUp &&
if (pDrawable->type == DRAWABLE_WINDOW && pScreenPriv->isUp &&
ORG_OVERLAP(&pScreenPriv->saved, pDrawable->x, pDrawable->y,
x, y, width, height))
{
......@@ -389,8 +386,7 @@ miSpriteCopyWindow (WindowPtr pWindow, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
/*
* Damage will take care of destination check
*/
if (pScreenPriv->internalDraw == 0 &&
pScreenPriv->isUp &&
if (pScreenPriv->isUp &&
RECT_IN_REGION (pScreen, prgnSrc, &pScreenPriv->saved) != rgnOUT)
{
SPRITE_DEBUG (("CopyWindow remove\n"));
......@@ -831,28 +827,3 @@ miSpriteComputeSaved (pScreen)
pScreenPriv->saved.x2 = pScreenPriv->saved.x1 + w + wpad * 2;
pScreenPriv->saved.y2 = pScreenPriv->saved.y1 + h + hpad * 2;
}
/**
* Enables internal drawing support, which disables removal of the
* cursor when the screen pixmap is sourced from.
*
* This can be used to allow software cursors to be read by RandR rotation
* shadow code.
*/
void
miSpriteDrawInternal(ScreenPtr pScreen, Bool enable)
{
miSpriteScreenPtr pScreenPriv;
/* Check that miSprite has been set up this generation */
if (miSpriteGeneration != serverGeneration)
return;
pScreenPriv = (miSpriteScreenPtr)
pScreen->devPrivates[miSpriteScreenIndex].ptr;
if (enable)
pScreenPriv->internalDraw++;
else
pScreenPriv->internalDraw--;
}
......@@ -92,5 +92,3 @@ extern Bool miSpriteInitialize(
miSpriteCursorFuncPtr /*cursorFuncs*/,
miPointerScreenFuncPtr /*screenFuncs*/
);
void miSpriteDrawInternal(ScreenPtr pScreen, Bool enable);
......@@ -76,7 +76,6 @@ typedef struct {
WindowPtr pCacheWin; /* window the cursor last seen in */
Bool isInCacheWin;
Bool checkPixels; /* check colormap collision */
int internalDraw;
xColorItem colors[2];
ColormapPtr pInstalledMap;
ColormapPtr pColormap;
......
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