Maximus: Avoid a window list order issue
commit0a0c2391dec6e4230c09f3c049194ddf84be48ce
authorCarlos R. Mafra <crmafra@gmail.com>
Wed, 16 Sep 2009 22:18:56 +0000 (17 00:18 +0200)
committerCarlos R. Mafra <crmafra@gmail.com>
Sat, 19 Sep 2009 14:06:48 +0000 (19 16:06 +0200)
tree0ab255ebd4aba7026f81123e23e821a4ce95fe48
parent7a86f48f73daa2653bb5ecb6395976b459586d70
Maximus: Avoid a window list order issue

If we compute the maximus geometry in only one pass through
the window list, the order in which the windows appear in
the list can affect the outcome.

That is because before computing the intersections in the
y-projections we update the y coordinates from whatever window
which happened to change the new_y coordinate during the
previous x-intersection computations, but that may not be _the_
blocking window which decides the final positions in the y axis.
Therefore we may find that this "intermediate window state"
has a non-vanishing y-intersection with another one -- and
be blocked by it -- even though that should not be the case for
the final outcome.

So to avoid that we first scan through all the windows to decide
the final maximumized coordinates in the y axis. Only after that we
compute the x-coordinates.
src/actions.c