*** client.c 2007-10-17 14:28:05.000000000 +-0200 --- xfwm4-4.4.1\src\client.c 2007-10-17 14:15:33.000000000 +-0200 *************** *** 680,691 **** --- 680,696 ---- g_return_if_fail (c->window != None); TRACE ("entering clientConfigure"); TRACE ("configuring client \"%s\" (0x%lx) %s, type %u", c->name, c->window, flags & CFG_CONSTRAINED ? "constrained" : "not contrained", c->type); ! px = c->x; ! py = c->y; ! pwidth = c->width; ! pheight = c->height; ! if (mask & CWX) { if (!FLAG_TEST (c->xfwm_flags, XFWM_FLAG_MOVING_RESIZING)) { c->x = wc->x; } *************** *** 754,789 **** second part of the test is for this case. */ if (((flags & (CFG_CONSTRAINED | CFG_REQUEST)) == (CFG_CONSTRAINED | CFG_REQUEST)) && CONSTRAINED_WINDOW (c) && !((c->gravity == StaticGravity) && (c->x == 0) && (c->y == 0))) { - px = c->x; - py = c->y; - pwidth = c->width; - pheight = c->height; /* Keep fully visible only on resize */ clientConstrainPos (c, (mask & (CWWidth | CWHeight))); if (c->x != px) { mask |= CWX; } if (c->y != py) { mask |= CWY; } if (c->width != pwidth) { mask |= CWWidth; } if (c->height != pheight) { mask |= CWHeight; } } clientConfigureWindows (c, wc, mask, flags); /* --- 759,806 ---- second part of the test is for this case. */ if (((flags & (CFG_CONSTRAINED | CFG_REQUEST)) == (CFG_CONSTRAINED | CFG_REQUEST)) && CONSTRAINED_WINDOW (c) && !((c->gravity == StaticGravity) && (c->x == 0) && (c->y == 0))) { /* Keep fully visible only on resize */ clientConstrainPos (c, (mask & (CWWidth | CWHeight))); if (c->x != px) { mask |= CWX; } + else + { + mask &= ~CWX; + } if (c->y != py) { mask |= CWY; + } + else + { + mask &= ~CWY; } if (c->width != pwidth) { mask |= CWWidth; } + else + { + mask &= ~CWWidth; + } if (c->height != pheight) { mask |= CWHeight; + } + else + { + mask &= ~CWHeight; } } clientConfigureWindows (c, wc, mask, flags); /*