Code review comment for lp://staging/~brandontschaefer/compiz/fix-lp.892012

Revision history for this message
Sam Spilsbury (smspillaz) wrote :

On Mon, Jun 24, 2013 at 5:56 PM, Brandon Schaefer
<email address hidden> wrote:
> Hmm it seems to overwrite them :). For example with the draft you've made:
>
> If out last state was not maxed, and we go into a V Max we save X,Y,W,H. This should be our orig position.
>
> Then we go to a full max (V + H), in the Vert if statement we re-save Y, H (since are state is also a Horz max), and in the Horz Max we re-save the X, W causing the new position to be save where it was in the Vert Max position ie. the bug :). Sooo I suppose I should look into why saving is overwriting the window cords?

As I mentioned in (5) PrivateWindow::saveGeometry will only save
positions that have not yet been saved. This is because we only save
bits which are in mask & ~saveMask. Any bits in saveMask already will
be changed to 0 by ~. So if you call saveGeometry with CWX | CWWidth,
it will only overwrite them they were not already added to saveMask.

>
> Also some strange thing be happening with your changes, when I move to a vert maxed the window slowly decreases its width? Its actually pretty cool looking...but something must be off..

Indeed, as I mentioned in (b), there is a different bug which is
causing an incorrect offset move. Hence the reason why I'm getting
some acceptance tests around the decor plugin so that we can fix that.

« Back to merge proposal