mark drawable as dirty on copying/painting windows
This commit is contained in:
parent
4ab73a73f4
commit
e84648df7d
79
exa/exa.c
79
exa/exa.c
|
@ -1008,6 +1008,7 @@ exaCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
|
||||||
if (!pScrn->vtSema) {
|
if (!pScrn->vtSema) {
|
||||||
ExaScreenPriv(pWin->drawable.pScreen);
|
ExaScreenPriv(pWin->drawable.pScreen);
|
||||||
pExaScr->SavedCopyWindow (pWin, ptOldOrg, prgnSrc);
|
pExaScr->SavedCopyWindow (pWin, ptOldOrg, prgnSrc);
|
||||||
|
exaDrawableDirty (&pWin->drawable);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1071,59 +1072,49 @@ static void
|
||||||
exaPaintWindow(WindowPtr pWin, RegionPtr pRegion, int what)
|
exaPaintWindow(WindowPtr pWin, RegionPtr pRegion, int what)
|
||||||
{
|
{
|
||||||
ScrnInfoPtr pScrn = XF86SCRNINFO(pWin->drawable.pScreen);
|
ScrnInfoPtr pScrn = XF86SCRNINFO(pWin->drawable.pScreen);
|
||||||
ExaScreenPriv(pWin->drawable.pScreen);
|
|
||||||
if (!pScrn->vtSema) {
|
|
||||||
switch (what) {
|
|
||||||
case PW_BACKGROUND:
|
|
||||||
pExaScr->SavedPaintWindowBackground(pWin, pRegion, what);
|
|
||||||
break;
|
|
||||||
case PW_BORDER:
|
|
||||||
pExaScr->SavedPaintWindowBorder(pWin, pRegion, what);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
STRACE;
|
STRACE;
|
||||||
|
|
||||||
if (!REGION_NUM_RECTS(pRegion))
|
if (!REGION_NUM_RECTS(pRegion))
|
||||||
return;
|
return;
|
||||||
switch (what) {
|
if (pScrn->vtSema) {
|
||||||
case PW_BACKGROUND:
|
switch (what) {
|
||||||
switch (pWin->backgroundState) {
|
case PW_BACKGROUND:
|
||||||
case None:
|
switch (pWin->backgroundState) {
|
||||||
return;
|
case None:
|
||||||
case ParentRelative:
|
return;
|
||||||
do {
|
case ParentRelative:
|
||||||
pWin = pWin->parent;
|
do {
|
||||||
} while (pWin->backgroundState == ParentRelative);
|
pWin = pWin->parent;
|
||||||
(*pWin->drawable.pScreen->PaintWindowBackground)(pWin, pRegion,
|
} while (pWin->backgroundState == ParentRelative);
|
||||||
what);
|
(*pWin->drawable.pScreen->PaintWindowBackground)(pWin, pRegion,
|
||||||
return;
|
what);
|
||||||
case BackgroundPixel:
|
return;
|
||||||
exaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->background.pixel);
|
case BackgroundPixel:
|
||||||
return;
|
exaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->background.pixel);
|
||||||
|
return;
|
||||||
#if 0
|
#if 0
|
||||||
case BackgroundPixmap:
|
case BackgroundPixmap:
|
||||||
exaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->background.pixmap);
|
exaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->background.pixmap);
|
||||||
return;
|
return;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PW_BORDER:
|
case PW_BORDER:
|
||||||
if (pWin->borderIsPixel)
|
if (pWin->borderIsPixel)
|
||||||
{
|
{
|
||||||
exaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->border.pixel);
|
exaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->border.pixel);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#if 0
|
#if 0
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
exaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->border.pixmap);
|
exaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->border.pixmap);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ExaCheckPaintWindow (pWin, pRegion, what);
|
ExaCheckPaintWindow (pWin, pRegion, what);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1008,6 +1008,7 @@ exaCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
|
||||||
if (!pScrn->vtSema) {
|
if (!pScrn->vtSema) {
|
||||||
ExaScreenPriv(pWin->drawable.pScreen);
|
ExaScreenPriv(pWin->drawable.pScreen);
|
||||||
pExaScr->SavedCopyWindow (pWin, ptOldOrg, prgnSrc);
|
pExaScr->SavedCopyWindow (pWin, ptOldOrg, prgnSrc);
|
||||||
|
exaDrawableDirty (&pWin->drawable);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1071,59 +1072,49 @@ static void
|
||||||
exaPaintWindow(WindowPtr pWin, RegionPtr pRegion, int what)
|
exaPaintWindow(WindowPtr pWin, RegionPtr pRegion, int what)
|
||||||
{
|
{
|
||||||
ScrnInfoPtr pScrn = XF86SCRNINFO(pWin->drawable.pScreen);
|
ScrnInfoPtr pScrn = XF86SCRNINFO(pWin->drawable.pScreen);
|
||||||
ExaScreenPriv(pWin->drawable.pScreen);
|
|
||||||
if (!pScrn->vtSema) {
|
|
||||||
switch (what) {
|
|
||||||
case PW_BACKGROUND:
|
|
||||||
pExaScr->SavedPaintWindowBackground(pWin, pRegion, what);
|
|
||||||
break;
|
|
||||||
case PW_BORDER:
|
|
||||||
pExaScr->SavedPaintWindowBorder(pWin, pRegion, what);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
STRACE;
|
STRACE;
|
||||||
|
|
||||||
if (!REGION_NUM_RECTS(pRegion))
|
if (!REGION_NUM_RECTS(pRegion))
|
||||||
return;
|
return;
|
||||||
switch (what) {
|
if (pScrn->vtSema) {
|
||||||
case PW_BACKGROUND:
|
switch (what) {
|
||||||
switch (pWin->backgroundState) {
|
case PW_BACKGROUND:
|
||||||
case None:
|
switch (pWin->backgroundState) {
|
||||||
return;
|
case None:
|
||||||
case ParentRelative:
|
return;
|
||||||
do {
|
case ParentRelative:
|
||||||
pWin = pWin->parent;
|
do {
|
||||||
} while (pWin->backgroundState == ParentRelative);
|
pWin = pWin->parent;
|
||||||
(*pWin->drawable.pScreen->PaintWindowBackground)(pWin, pRegion,
|
} while (pWin->backgroundState == ParentRelative);
|
||||||
what);
|
(*pWin->drawable.pScreen->PaintWindowBackground)(pWin, pRegion,
|
||||||
return;
|
what);
|
||||||
case BackgroundPixel:
|
return;
|
||||||
exaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->background.pixel);
|
case BackgroundPixel:
|
||||||
return;
|
exaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->background.pixel);
|
||||||
|
return;
|
||||||
#if 0
|
#if 0
|
||||||
case BackgroundPixmap:
|
case BackgroundPixmap:
|
||||||
exaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->background.pixmap);
|
exaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->background.pixmap);
|
||||||
return;
|
return;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PW_BORDER:
|
case PW_BORDER:
|
||||||
if (pWin->borderIsPixel)
|
if (pWin->borderIsPixel)
|
||||||
{
|
{
|
||||||
exaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->border.pixel);
|
exaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->border.pixel);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#if 0
|
#if 0
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
exaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->border.pixmap);
|
exaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->border.pixmap);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ExaCheckPaintWindow (pWin, pRegion, what);
|
ExaCheckPaintWindow (pWin, pRegion, what);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1008,6 +1008,7 @@ exaCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
|
||||||
if (!pScrn->vtSema) {
|
if (!pScrn->vtSema) {
|
||||||
ExaScreenPriv(pWin->drawable.pScreen);
|
ExaScreenPriv(pWin->drawable.pScreen);
|
||||||
pExaScr->SavedCopyWindow (pWin, ptOldOrg, prgnSrc);
|
pExaScr->SavedCopyWindow (pWin, ptOldOrg, prgnSrc);
|
||||||
|
exaDrawableDirty (&pWin->drawable);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1071,59 +1072,49 @@ static void
|
||||||
exaPaintWindow(WindowPtr pWin, RegionPtr pRegion, int what)
|
exaPaintWindow(WindowPtr pWin, RegionPtr pRegion, int what)
|
||||||
{
|
{
|
||||||
ScrnInfoPtr pScrn = XF86SCRNINFO(pWin->drawable.pScreen);
|
ScrnInfoPtr pScrn = XF86SCRNINFO(pWin->drawable.pScreen);
|
||||||
ExaScreenPriv(pWin->drawable.pScreen);
|
|
||||||
if (!pScrn->vtSema) {
|
|
||||||
switch (what) {
|
|
||||||
case PW_BACKGROUND:
|
|
||||||
pExaScr->SavedPaintWindowBackground(pWin, pRegion, what);
|
|
||||||
break;
|
|
||||||
case PW_BORDER:
|
|
||||||
pExaScr->SavedPaintWindowBorder(pWin, pRegion, what);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
STRACE;
|
STRACE;
|
||||||
|
|
||||||
if (!REGION_NUM_RECTS(pRegion))
|
if (!REGION_NUM_RECTS(pRegion))
|
||||||
return;
|
return;
|
||||||
switch (what) {
|
if (pScrn->vtSema) {
|
||||||
case PW_BACKGROUND:
|
switch (what) {
|
||||||
switch (pWin->backgroundState) {
|
case PW_BACKGROUND:
|
||||||
case None:
|
switch (pWin->backgroundState) {
|
||||||
return;
|
case None:
|
||||||
case ParentRelative:
|
return;
|
||||||
do {
|
case ParentRelative:
|
||||||
pWin = pWin->parent;
|
do {
|
||||||
} while (pWin->backgroundState == ParentRelative);
|
pWin = pWin->parent;
|
||||||
(*pWin->drawable.pScreen->PaintWindowBackground)(pWin, pRegion,
|
} while (pWin->backgroundState == ParentRelative);
|
||||||
what);
|
(*pWin->drawable.pScreen->PaintWindowBackground)(pWin, pRegion,
|
||||||
return;
|
what);
|
||||||
case BackgroundPixel:
|
return;
|
||||||
exaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->background.pixel);
|
case BackgroundPixel:
|
||||||
return;
|
exaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->background.pixel);
|
||||||
|
return;
|
||||||
#if 0
|
#if 0
|
||||||
case BackgroundPixmap:
|
case BackgroundPixmap:
|
||||||
exaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->background.pixmap);
|
exaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->background.pixmap);
|
||||||
return;
|
return;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PW_BORDER:
|
case PW_BORDER:
|
||||||
if (pWin->borderIsPixel)
|
if (pWin->borderIsPixel)
|
||||||
{
|
{
|
||||||
exaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->border.pixel);
|
exaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->border.pixel);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#if 0
|
#if 0
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
exaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->border.pixmap);
|
exaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->border.pixmap);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ExaCheckPaintWindow (pWin, pRegion, what);
|
ExaCheckPaintWindow (pWin, pRegion, what);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1008,6 +1008,7 @@ exaCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
|
||||||
if (!pScrn->vtSema) {
|
if (!pScrn->vtSema) {
|
||||||
ExaScreenPriv(pWin->drawable.pScreen);
|
ExaScreenPriv(pWin->drawable.pScreen);
|
||||||
pExaScr->SavedCopyWindow (pWin, ptOldOrg, prgnSrc);
|
pExaScr->SavedCopyWindow (pWin, ptOldOrg, prgnSrc);
|
||||||
|
exaDrawableDirty (&pWin->drawable);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1071,59 +1072,49 @@ static void
|
||||||
exaPaintWindow(WindowPtr pWin, RegionPtr pRegion, int what)
|
exaPaintWindow(WindowPtr pWin, RegionPtr pRegion, int what)
|
||||||
{
|
{
|
||||||
ScrnInfoPtr pScrn = XF86SCRNINFO(pWin->drawable.pScreen);
|
ScrnInfoPtr pScrn = XF86SCRNINFO(pWin->drawable.pScreen);
|
||||||
ExaScreenPriv(pWin->drawable.pScreen);
|
|
||||||
if (!pScrn->vtSema) {
|
|
||||||
switch (what) {
|
|
||||||
case PW_BACKGROUND:
|
|
||||||
pExaScr->SavedPaintWindowBackground(pWin, pRegion, what);
|
|
||||||
break;
|
|
||||||
case PW_BORDER:
|
|
||||||
pExaScr->SavedPaintWindowBorder(pWin, pRegion, what);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
STRACE;
|
STRACE;
|
||||||
|
|
||||||
if (!REGION_NUM_RECTS(pRegion))
|
if (!REGION_NUM_RECTS(pRegion))
|
||||||
return;
|
return;
|
||||||
switch (what) {
|
if (pScrn->vtSema) {
|
||||||
case PW_BACKGROUND:
|
switch (what) {
|
||||||
switch (pWin->backgroundState) {
|
case PW_BACKGROUND:
|
||||||
case None:
|
switch (pWin->backgroundState) {
|
||||||
return;
|
case None:
|
||||||
case ParentRelative:
|
return;
|
||||||
do {
|
case ParentRelative:
|
||||||
pWin = pWin->parent;
|
do {
|
||||||
} while (pWin->backgroundState == ParentRelative);
|
pWin = pWin->parent;
|
||||||
(*pWin->drawable.pScreen->PaintWindowBackground)(pWin, pRegion,
|
} while (pWin->backgroundState == ParentRelative);
|
||||||
what);
|
(*pWin->drawable.pScreen->PaintWindowBackground)(pWin, pRegion,
|
||||||
return;
|
what);
|
||||||
case BackgroundPixel:
|
return;
|
||||||
exaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->background.pixel);
|
case BackgroundPixel:
|
||||||
return;
|
exaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->background.pixel);
|
||||||
|
return;
|
||||||
#if 0
|
#if 0
|
||||||
case BackgroundPixmap:
|
case BackgroundPixmap:
|
||||||
exaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->background.pixmap);
|
exaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->background.pixmap);
|
||||||
return;
|
return;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PW_BORDER:
|
case PW_BORDER:
|
||||||
if (pWin->borderIsPixel)
|
if (pWin->borderIsPixel)
|
||||||
{
|
{
|
||||||
exaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->border.pixel);
|
exaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->border.pixel);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#if 0
|
#if 0
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
exaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->border.pixmap);
|
exaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->border.pixmap);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ExaCheckPaintWindow (pWin, pRegion, what);
|
ExaCheckPaintWindow (pWin, pRegion, what);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1008,6 +1008,7 @@ exaCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
|
||||||
if (!pScrn->vtSema) {
|
if (!pScrn->vtSema) {
|
||||||
ExaScreenPriv(pWin->drawable.pScreen);
|
ExaScreenPriv(pWin->drawable.pScreen);
|
||||||
pExaScr->SavedCopyWindow (pWin, ptOldOrg, prgnSrc);
|
pExaScr->SavedCopyWindow (pWin, ptOldOrg, prgnSrc);
|
||||||
|
exaDrawableDirty (&pWin->drawable);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1071,59 +1072,49 @@ static void
|
||||||
exaPaintWindow(WindowPtr pWin, RegionPtr pRegion, int what)
|
exaPaintWindow(WindowPtr pWin, RegionPtr pRegion, int what)
|
||||||
{
|
{
|
||||||
ScrnInfoPtr pScrn = XF86SCRNINFO(pWin->drawable.pScreen);
|
ScrnInfoPtr pScrn = XF86SCRNINFO(pWin->drawable.pScreen);
|
||||||
ExaScreenPriv(pWin->drawable.pScreen);
|
|
||||||
if (!pScrn->vtSema) {
|
|
||||||
switch (what) {
|
|
||||||
case PW_BACKGROUND:
|
|
||||||
pExaScr->SavedPaintWindowBackground(pWin, pRegion, what);
|
|
||||||
break;
|
|
||||||
case PW_BORDER:
|
|
||||||
pExaScr->SavedPaintWindowBorder(pWin, pRegion, what);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
STRACE;
|
STRACE;
|
||||||
|
|
||||||
if (!REGION_NUM_RECTS(pRegion))
|
if (!REGION_NUM_RECTS(pRegion))
|
||||||
return;
|
return;
|
||||||
switch (what) {
|
if (pScrn->vtSema) {
|
||||||
case PW_BACKGROUND:
|
switch (what) {
|
||||||
switch (pWin->backgroundState) {
|
case PW_BACKGROUND:
|
||||||
case None:
|
switch (pWin->backgroundState) {
|
||||||
return;
|
case None:
|
||||||
case ParentRelative:
|
return;
|
||||||
do {
|
case ParentRelative:
|
||||||
pWin = pWin->parent;
|
do {
|
||||||
} while (pWin->backgroundState == ParentRelative);
|
pWin = pWin->parent;
|
||||||
(*pWin->drawable.pScreen->PaintWindowBackground)(pWin, pRegion,
|
} while (pWin->backgroundState == ParentRelative);
|
||||||
what);
|
(*pWin->drawable.pScreen->PaintWindowBackground)(pWin, pRegion,
|
||||||
return;
|
what);
|
||||||
case BackgroundPixel:
|
return;
|
||||||
exaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->background.pixel);
|
case BackgroundPixel:
|
||||||
return;
|
exaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->background.pixel);
|
||||||
|
return;
|
||||||
#if 0
|
#if 0
|
||||||
case BackgroundPixmap:
|
case BackgroundPixmap:
|
||||||
exaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->background.pixmap);
|
exaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->background.pixmap);
|
||||||
return;
|
return;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PW_BORDER:
|
case PW_BORDER:
|
||||||
if (pWin->borderIsPixel)
|
if (pWin->borderIsPixel)
|
||||||
{
|
{
|
||||||
exaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->border.pixel);
|
exaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->border.pixel);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#if 0
|
#if 0
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
exaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->border.pixmap);
|
exaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->border.pixmap);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ExaCheckPaintWindow (pWin, pRegion, what);
|
ExaCheckPaintWindow (pWin, pRegion, what);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1008,6 +1008,7 @@ exaCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
|
||||||
if (!pScrn->vtSema) {
|
if (!pScrn->vtSema) {
|
||||||
ExaScreenPriv(pWin->drawable.pScreen);
|
ExaScreenPriv(pWin->drawable.pScreen);
|
||||||
pExaScr->SavedCopyWindow (pWin, ptOldOrg, prgnSrc);
|
pExaScr->SavedCopyWindow (pWin, ptOldOrg, prgnSrc);
|
||||||
|
exaDrawableDirty (&pWin->drawable);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1071,59 +1072,49 @@ static void
|
||||||
exaPaintWindow(WindowPtr pWin, RegionPtr pRegion, int what)
|
exaPaintWindow(WindowPtr pWin, RegionPtr pRegion, int what)
|
||||||
{
|
{
|
||||||
ScrnInfoPtr pScrn = XF86SCRNINFO(pWin->drawable.pScreen);
|
ScrnInfoPtr pScrn = XF86SCRNINFO(pWin->drawable.pScreen);
|
||||||
ExaScreenPriv(pWin->drawable.pScreen);
|
|
||||||
if (!pScrn->vtSema) {
|
|
||||||
switch (what) {
|
|
||||||
case PW_BACKGROUND:
|
|
||||||
pExaScr->SavedPaintWindowBackground(pWin, pRegion, what);
|
|
||||||
break;
|
|
||||||
case PW_BORDER:
|
|
||||||
pExaScr->SavedPaintWindowBorder(pWin, pRegion, what);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
STRACE;
|
STRACE;
|
||||||
|
|
||||||
if (!REGION_NUM_RECTS(pRegion))
|
if (!REGION_NUM_RECTS(pRegion))
|
||||||
return;
|
return;
|
||||||
switch (what) {
|
if (pScrn->vtSema) {
|
||||||
case PW_BACKGROUND:
|
switch (what) {
|
||||||
switch (pWin->backgroundState) {
|
case PW_BACKGROUND:
|
||||||
case None:
|
switch (pWin->backgroundState) {
|
||||||
return;
|
case None:
|
||||||
case ParentRelative:
|
return;
|
||||||
do {
|
case ParentRelative:
|
||||||
pWin = pWin->parent;
|
do {
|
||||||
} while (pWin->backgroundState == ParentRelative);
|
pWin = pWin->parent;
|
||||||
(*pWin->drawable.pScreen->PaintWindowBackground)(pWin, pRegion,
|
} while (pWin->backgroundState == ParentRelative);
|
||||||
what);
|
(*pWin->drawable.pScreen->PaintWindowBackground)(pWin, pRegion,
|
||||||
return;
|
what);
|
||||||
case BackgroundPixel:
|
return;
|
||||||
exaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->background.pixel);
|
case BackgroundPixel:
|
||||||
return;
|
exaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->background.pixel);
|
||||||
|
return;
|
||||||
#if 0
|
#if 0
|
||||||
case BackgroundPixmap:
|
case BackgroundPixmap:
|
||||||
exaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->background.pixmap);
|
exaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->background.pixmap);
|
||||||
return;
|
return;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PW_BORDER:
|
case PW_BORDER:
|
||||||
if (pWin->borderIsPixel)
|
if (pWin->borderIsPixel)
|
||||||
{
|
{
|
||||||
exaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->border.pixel);
|
exaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->border.pixel);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#if 0
|
#if 0
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
exaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->border.pixmap);
|
exaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->border.pixmap);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ExaCheckPaintWindow (pWin, pRegion, what);
|
ExaCheckPaintWindow (pWin, pRegion, what);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue