Hi Sebastien,

I've looked into the source code of metacity and could find the crucial
lines. I've atteched a diff. This is my very first patch, so please
forgive me if there's anything wrong with it.

The problem did not only occur when dragging horizontally starting on
the right monitor without "shaking loose" the windows first. It also
occurs when first "shaking loose", then moving to the left and
reattaching with the cursor on the left monitor but with the window-
center on the right monitor.

Metacity first sets  the coordinates (window->saved_rect) to the top
left corner of the monitor and unmaximizes the grabbed window. Then, it
is maximizes it again. At this point window->user_rect is used as
reference to which xinerama workspace the window belongs. Therefore, the
window is maximized on the wrong monitor. When dragging the window
further the procedure is repeated: restoring the window to the left
monitor top left and immediately maximizing to the wrong monitor
yielding the weird window "jumping".

The patch is a two-liner: The window->save_rect coordinates are also
written to window->user_rect which is legitimate since it is a user
requested moving operation. With that the window is maximized to the
correct xinerama workspace.

What are the right steps to fix the bug upstream, too?

** Attachment added: "Patch fixing strange behaviour when moving maximized 
windows"
   http://librarian.launchpad.net/4565558/007_moving_maximized_windows.patch

-- 
Strange behavior while moving maximized window (xinerama)
https://launchpad.net/bugs/62894

-- 
desktop-bugs mailing list
desktop-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/desktop-bugs

Reply via email to