Fix lg bug 162. This consitutes lg3d-x11 version 0-6-1-12.

This commit is contained in:
Deron Johnson 2004-12-17 23:31:56 +00:00
parent ff3fb9df35
commit 4ec423310e
2 changed files with 27 additions and 52 deletions

View file

@ -25,10 +25,6 @@
#include "windowstr.h"
#include "cw.h"
#ifdef LG3D
#include "../../Xext/lgeint.h"
#endif /* LG3D */
#define CW_DEBUG 1
#if CW_DEBUG
@ -447,6 +443,17 @@ cwFillRegionTiled(DrawablePtr pDrawable, RegionPtr pRegion, PixmapPtr pTile,
FreeScratchGC(pGC);
}
#ifdef LG3D
/*
** RUDE HACK: need to find a cleaner way to do this!
** This variable is set by routines in lgwindow.c
** in order to skip the wrappee paint window call from
** this routine. This is necessary in order to keep the
** DDX from preparing the DIDs, which causes visual artifaces.
*/
Bool cwPaintWindowCallWrappee = TRUE;
#endif /* LG3D */
static void
cwPaintWindowBackground(WindowPtr pWin, RegionPtr pRegion, int what)
{
@ -455,7 +462,15 @@ cwPaintWindowBackground(WindowPtr pWin, RegionPtr pRegion, int what)
SCREEN_PROLOGUE(pScreen, PaintWindowBackground);
if (!cwDrawableIsRedirWindow((DrawablePtr)pWin)) {
#ifdef LG3D
/* RUDE HACK: see comment above */
if (cwPaintWindowCallWrappee) {
#endif /* LG3D */
(*pScreen->PaintWindowBackground)(pWin, pRegion, what);
#ifdef LG3D
/* RUDE HACK: see comment above */
}
#endif /* LG3D */
} else {
DrawablePtr pBackingDrawable;
int x_off, y_off, x_screen, y_screen;
@ -497,7 +512,15 @@ cwPaintWindowBorder(WindowPtr pWin, RegionPtr pRegion, int what)
SCREEN_PROLOGUE(pScreen, PaintWindowBorder);
if (!cwDrawableIsRedirWindow((DrawablePtr)pWin)) {
#ifdef LG3D
/* RUDE HACK: see comment above */
if (cwPaintWindowCallWrappee) {
#endif /* LG3D */
(*pScreen->PaintWindowBorder)(pWin, pRegion, what);
#ifdef LG3D
/* RUDE HACK: see comment above */
}
#endif /* LG3D */
} else {
DrawablePtr pBackingDrawable;
int x_off, y_off, x_screen, y_screen;
@ -661,24 +684,6 @@ miInitializeCompositeWrapper(ScreenPtr pScreen)
}
#ifdef LG3D
/*
** This is called when the LG Display Server first notifies
** the X server that it is alive. Note that we cannot initialize
** these screen functions earlier than this because the composite
** wrapper is initialized when the X server starts up and at that
** time it is not known whether the LG Display Server will be
** running.
*/
void
miInitializeCompositeWrapperForLG(ScreenPtr pScreen)
{
SCREEN_EPILOGUE(pScreen, MoveWindow, lg3dMoveWindow);
SCREEN_EPILOGUE(pScreen, ResizeWindow, lg3dSlideAndSizeWindow);
}
#endif /* LG3D */
static Bool
cwCloseScreen (int i, ScreenPtr pScreen)
{
@ -702,13 +707,6 @@ cwCloseScreen (int i, ScreenPtr pScreen)
cwFiniRender(pScreen);
#endif
#ifdef LG3D
if (lgeDisplayServerIsAlive) {
pScreen->MoveWindow = pScreenPriv->MoveWindow;
pScreen->ResizeWindow = pScreenPriv->ResizeWindow;
}
#endif /* LG3D */
xfree((pointer)pScreenPriv);
return (*pScreen->CloseScreen)(i, pScreen);

View file

@ -1561,19 +1561,6 @@ damageDestroyPixmap (PixmapPtr pPixmap)
return TRUE;
}
#ifdef LG3D
/*
** RUDE HACK: need to find a cleaner way to do this!
** This variable is set by routines in lgwindow.c
** in order to skip the wrappee paint window call from
** this routine. This is necessary in order to keep the
** DDX from preparing the DIDs where the X server thinks
** the window is. But this isn't where the 3D window
** avatar really is.
*/
Bool damagePaintWindowCallWrappee = TRUE;
#endif /* LG3D */
static void
damagePaintWindow(WindowPtr pWindow,
RegionPtr prgn,
@ -1590,11 +1577,6 @@ damagePaintWindow(WindowPtr pWindow,
getWindowDamage (pWindow))
damageDamageRegion (&pWindow->drawable, prgn, FALSE);
#ifdef LG3D
/* RUDE HACK: see comment above */
if (damagePaintWindowCallWrappee) {
#endif /* LG3D */
if(what == PW_BACKGROUND) {
unwrap (pScrPriv, pScreen, PaintWindowBackground);
(*pScreen->PaintWindowBackground) (pWindow, prgn, what);
@ -1604,11 +1586,6 @@ damagePaintWindow(WindowPtr pWindow,
(*pScreen->PaintWindowBorder) (pWindow, prgn, what);
wrap (pScrPriv, pScreen, PaintWindowBorder, damagePaintWindow);
}
#ifdef LG3D
/* RUDE HACK: see comment above */
}
#endif /* LG3D */
}