All pastes #455779 Raw Edit

Anonymous

public text v1 · immutable
#455779 ·published 2007-04-24 13:34 UTC
rendered paste body
diff --git a/src/wall.c b/src/wall.c
index f31fdd2..9a72208 100644
--- a/src/wall.c
+++ b/src/wall.c
@@ -656,6 +656,8 @@ static Bool wallMoveViewport(CompScreen * s, int x, int y, Window moveWindow)
 
 			ws->destx = newDestX;
 			ws->desty = newDestY;
+			moveScreenViewport(s, ws->destx, ws->desty, TRUE);
+
 			ws->moving = TRUE;
 			ws->timer = (int)newTimeout - ws->timer;
 			if (ws->moveWindow != moveWindow)
@@ -1798,7 +1800,6 @@ static void wallPreparePaintScreen(CompScreen * s, int ms)
 	if (ws->moving && ws->timer <= 0)
 	{
 		ws->moving = FALSE;
-		moveScreenViewport(s, ws->destx, ws->desty, TRUE);
 		ws->timer = 0;
 		if (ws->moveWindow)
 			wallReleaseMoveWindow(s);
@@ -2069,6 +2070,7 @@ static void wallPaintTransformedScreen(CompScreen * s,
 		float dx, dy;
 
 		wallGetDistanceForAnimation(s, left, output, &dx, &dy);
+		matrixTranslate(&sTransform, -ws->destx, ws->desty,0);
 		matrixTranslate(&sTransform, dx, -dy, 0);
 
 		for (i = -abs(ws->destx); i < s->hsize; i++)	// TODO: Add a slight bit of intelligence to not be so ineffecient