rendered paste bodyIndex: 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;