All pastes #228877 Raw Edit

Miscellany

public text v1 · immutable
#228877 ·published 2006-10-30 08:45 UTC
rendered paste body
Index: beryl-plugins/src/wobbly.c
===================================================================
--- beryl-plugins/src/wobbly.c	(Revision 888)
+++ beryl-plugins/src/wobbly.c	(Arbeitskopie)
@@ -3211,7 +3211,6 @@
         else
         {
             modelMove (ww->model, dx, dy);
-
         }
 
     }
Index: beryl-plugins/src/resize.c
===================================================================
--- beryl-plugins/src/resize.c	(Revision 888)
+++ beryl-plugins/src/resize.c	(Arbeitskopie)
@@ -186,14 +186,9 @@
 		return;
 
 	if (move_only) {
-		if (rd->currentX != rd->w->serverX || rd->currentY != rd->w->serverY) {
-			moveWindow(rd->w, rd->currentX - rd->w->attrib.x, rd->currentY - rd->w->attrib.y,
-					TRUE, FALSE);
-
-			syncWindowPosition(rd->w);
-			damageScreen(rd->w->screen);
-		}
-
+		moveWindow(rd->w, rd->currentX - rd->w->attrib.x, rd->currentY - rd->w->attrib.y,
+			TRUE, FALSE);
+		syncWindowPosition(rd->w);
 		return;
 	}
 
@@ -208,8 +203,6 @@
 	
 	IPCS_SetBoolN (IPCS_OBJECT(rd->w), "WOBBLY_WAS_RESIZED", TRUE);
 	moveResizeWindow(rd->w, &xwc, CWX | CWY | CWWidth | CWHeight, 0);	
-	syncWindowPosition(rd->w);
-	damageScreen(rd->w->screen);
 }
 
 static void resizeConstrainMinMax (CompWindow *w,
@@ -539,16 +532,12 @@
 	if (state & CompActionStateCancel) {
 		XWindowChanges xwc;
 
-		sendSyncRequest (rd->w);
-
 		xwc.x	  = rd->savedAttrib.x;
 		xwc.y	  = rd->savedAttrib.y;
 		xwc.width  = rd->savedAttrib.width;
 		xwc.height = rd->savedAttrib.height;
 
-		XConfigureWindow (d->display, rd->w->id,
-				  CWX | CWY | CWWidth | CWHeight,
-				  &xwc);
+		moveResizeWindow(rd->w, &xwc, CWX | CWY | CWWidth | CWHeight, 0);
 	} else if (rd->resizeMode == ResizeModeStretch) {
 		rd->stretch_finish = 1;
 		(*rd->w->screen->setWindowScale) (rd->w, 1.0f, 1.0f);
Index: beryl-core/src/window.c
===================================================================
--- beryl-core/src/window.c	(Revision 888)
+++ beryl-core/src/window.c	(Arbeitskopie)
@@ -3265,10 +3265,14 @@
 moveResizeWindow (CompWindow * w,
                   XWindowChanges * xwc, unsigned int xwcm, int gravity)
 {
+    int dx = 0, dy = 0;
     Bool placed = xwcm & (CWX | CWY);
 
     xwcm &= (CWX | CWY | CWWidth | CWHeight | CWBorderWidth);
 
+    if (!xwc)
+	return;
+
     if (gravity == 0)
         gravity = w->sizeHints.win_gravity;
 
@@ -3420,21 +3424,32 @@
     if (xwcm & (CWX | CWY | CWWidth | CWHeight)) 
 	addWindowDamage(w);
 
-    resizeWindow(w, (xwcm & CWX) ? xwc->x : w->attrib.x, (xwcm & CWY) ? xwc->y : w->attrib.y,
-	(xwcm & CWWidth) ? xwc->width : w->serverWidth, (xwcm & CWHeight) ? xwc->height : w->serverHeight, w->attrib.border_width);
+    if (xwcm & CWX) {
+	dx = xwc->x - w->attrib.x;
+	w->serverX = xwc->x;
+	w->attrib.x = xwc->x;
+    }
 
-    if (xwcm & CWX) w->attrib.x = xwc->x;
-    if (xwcm & CWY) w->attrib.y = xwc->y;
+    if (xwcm & CWY) {
+	dy = xwc->y - w->attrib.y;
+	w->serverY = xwc->y;
+	w->attrib.y = xwc->y;
+    }
 
-    if (w->mapNum && (xwcm & (CWWidth | CWHeight)))
+    if (w->mapNum)
 	updateWindowRegion(w);
+        
+    if (w->frame) {
+	if (xwcm & (CWX | CWY))
+	    XMoveWindow (w->screen->display->display, w->frame, 
+		w->serverX - w->input.left, w->serverY - w->input.top);
+	updateFrameWindow(w);
+    }
 
-    updateFrameWindow(w);
     configureXWindow (w, xwcm, xwc);
 
-    if (w->frame && (xwcm & (CWX | CWY)))
-        XMoveWindow (w->screen->display->display, w->frame,
-                     w->attrib.x - w->input.left, w->attrib.y - w->input.top);
+    if (dx || dy) (*w->screen->windowMoveNotify) (w, dx, dy, TRUE);
+    (*w->screen->windowResizeNotify) (w);
 
     if (placed)
         w->placed = TRUE;