File hidedesktop-NOMAD.diff of Package compiz-plugins-dmx
commit daa3672b32f000b21ba35ba5fea7ea51c99968f7
Author: David Reveman <davidr@novell.com>
Date: Wed Nov 26 17:26:25 2008 -0500
Add inputX and inputY as serverX and serverY variables are abused
by some plugins.
diff --git a/hidedesktop.c b/hidedesktop.c
index c26f0f1..11054bf 100644
--- a/hidedesktop.c
+++ b/hidedesktop.c
@@ -33,6 +33,8 @@ typedef struct _HdWindow {
Bool hideDesktop;
Bool lastHideDesktop;
Region inputRegion;
+ int inputX;
+ int inputY;
CompTimeoutHandle checkHandle;
} HdWindow;
@@ -147,6 +149,9 @@ hdGetWindowInputRegion (CompWindow *w)
if (!hw->inputRegion)
return NULL;
+ hw->inputX = w->serverX;
+ hw->inputY = w->serverY;
+
if (w->screen->display->shapeExtension)
{
int order;
@@ -195,10 +200,10 @@ hdGetWindowInputRegion (CompWindow *w)
if (rect.extents.y1 < rect.extents.y2 &&
rect.extents.x1 < rect.extents.x2)
{
- rect.extents.x1 += w->serverX;
- rect.extents.y1 += w->serverY;
- rect.extents.x2 += w->serverX;
- rect.extents.y2 += w->serverY;
+ rect.extents.x1 += hw->inputX;
+ rect.extents.y1 += hw->inputY;
+ rect.extents.x2 += hw->inputX;
+ rect.extents.y2 += hw->inputY;
XUnionRegion (&rect, hw->inputRegion, hw->inputRegion);
}
@@ -485,11 +490,13 @@ hdHandleEvent (CompDisplay *d,
}
else
{
- int dx = event->xconfigure.x - w->serverX;
- int dy = event->xconfigure.y - w->serverY;
+ int dx = event->xconfigure.x - hw->inputX;
+ int dy = event->xconfigure.y - hw->inputY;
if (dx || dy)
{
+ hw->inputX += dx;
+ hw->inputY += dy;
XOffsetRegion (hw->inputRegion, dx, dy);
hdUpdateHideDesktopShape (w);
}