I did some debugging and came up with a patch. I hope a compiz developer
can fix this more properly.

I have 4 viewports (Oneiric default). The wall plugin has issues with windows 
on the outer edges, namely
- the left edge of the top/bottom left workspace
- the right edge of the top/bottom right workspace
- the bottom edge of the left/right bottom workspace

When screen->viewportForGeometry (window->geometry (), viewport); is called in 
wall.cpp to determine which workspace the window is placed on it returns values 
such as:
- y=-1 if the window is sitting on the bottom edge of a bottom workspace
- x=2 if the window is sitting on the left edge of a left workspace

In my opinion it is incorrect but I could interpret it that it wants to
wrap around so from the top workspace (y=0) if I go up and wrap around
(y=-1) then I end up on the bottom workspace (y=1).

The attached patch just calculates the values without wrapping around.

My feeling is that the problem may lie in the core. I did some debugging
in the core and I saw that when a window is sitting on the bottom edge
centerY=-266 for the window but I don't think it is correct. If I move
it a few pixels up it will be something like 500 (on a resultion of 768)
which makes more sense. Because of this negative center value the
calculated offset in the viewportForGeometry function for y becomes -1
and (rect.centerY () / height ()) + offset=-1 so y=-1 is returned from
the viewportForGeometry call. This is core however so i did not want to
mess with that method and better reinterpreted the values is the wall
plugin.

** Patch added: "Eliminate wrap-around for viewport for window calculation"
   
https://bugs.launchpad.net/unity/+bug/834248/+attachment/2669418/+files/fix-762335.patch

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/834248

Title:
  Oneiric: Non-maximized windows which sit on the bottom edge of the
  lower workspaces shift downwards when called from an upper workspace.

To manage notifications about this bug go to:
https://bugs.launchpad.net/compiz-core/+bug/834248/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to