summaryrefslogtreecommitdiff
path: root/mi/miwindow.c
diff options
context:
space:
mode:
Diffstat (limited to 'mi/miwindow.c')
-rw-r--r--mi/miwindow.c41
1 files changed, 40 insertions, 1 deletions
diff --git a/mi/miwindow.c b/mi/miwindow.c
index 4eac9226c..eab2c8641 100644
--- a/mi/miwindow.c
+++ b/mi/miwindow.c
@@ -55,6 +55,17 @@ SOFTWARE.
#include "pixmapstr.h"
#include "mivalidate.h"
+#ifdef LG3D
+#include "../Xext/lgeint.h"
+
+extern void lg3dMoveWindow (WindowPtr pWin, int x, int y, WindowPtr pNextSib,
+ VTKind kind);
+
+extern void lg3dSlideAndSizeWindow (WindowPtr pWin, int x, int y,
+ unsigned int w, unsigned int h, WindowPtr pSib);
+
+#endif /* LG3D */
+
void
miClearToBackground(pWin, x, y, w, h, generateExposures)
WindowPtr pWin;
@@ -503,6 +514,18 @@ miMoveWindow(pWin, x, y, pNextSib, kind)
#endif
WindowPtr pLayerWin;
+#ifdef LG3D
+ /*
+ ** TODO: I tried to do this with wrappers but it didn't work.
+ ** Is there a better way to override this function other than
+ ** just directly modifying it?
+ */
+ if (lgeDisplayServerIsAlive) {
+ lg3dMoveWindow(pWin, x, y, pNextSib, kind);
+ return;
+ }
+#endif /* LG3D */
+
/* if this is a root window, can't be moved */
if (!(pParent = pWin->parent))
return ;
@@ -637,6 +660,18 @@ miSlideAndSizeWindow(pWin, x, y, w, h, pSib)
#endif
WindowPtr pLayerWin;
+#ifdef LG3D
+ /*
+ ** TODO: I tried to do this with wrappers but it didn't work.
+ ** Is there a better way to override this function other than
+ ** just directly modifying it?
+ */
+ if (lgeDisplayServerIsAlive) {
+ lg3dSlideAndSizeWindow(pWin, x, y, w, h, pSib);
+ return;
+ }
+#endif /* LG3D */
+
/* if this is a root window, can't be resized */
if (!(pParent = pWin->parent))
return ;
@@ -883,7 +918,11 @@ miSlideAndSizeWindow(pWin, x, y, w, h, pSib)
/* and move those bits */
- if (oldpt.x != x || oldpt.y != y)
+ if (oldpt.x != x || oldpt.y != y
+#ifdef LG3D
+ || pWin->redirectDraw
+#endif /* LG3D */
+ )
(*pWin->drawable.pScreen->CopyWindow)(pWin, oldpt, gravitate[g]);
/* remove any overwritten bits from the remaining useful bits */