winemac: Restore a maximized window if a user tries to move it by dragging its title...
commit792b47ad3b89d51f17ef311ccaa62fc2016af793
authorKen Thomases <ken@codeweavers.com>
Mon, 23 Mar 2015 23:58:11 +0000 (23 18:58 -0500)
committerAlexandre Julliard <julliard@winehq.org>
Tue, 24 Mar 2015 04:55:34 +0000 (24 13:55 +0900)
tree4f4a7f44aa08f98b07a9552838df3c3dd5807a51
parent8d581d0e489c6bf7d54674adc0ea695e8adc978f
winemac: Restore a maximized window if a user tries to move it by dragging its title bar.

OS X doesn't have the same concept of maximized windows as Windows does.
There's no mode that prevents a normally-movable window from being moved.  If
a window is "zoomed", it mostly fills the screen but the user can still move
or resize it, at which point it ceases to be in the zoomed state.  So, users
are confused and frustrated when they can't move a window that's maximized.

To get similar behavior while still respecting Win32 semantics, we detect when
the user tries to move a maximized window.  When they start, a request is
submitted to the app to restore the window.  Unless and until the window is
restored, we don't actually allow the window to move.

The user expects to move the window from its current (maximized) position.  It
should not jump to its normal position upon being restored.  So, we set the
window's normal position to its current position before restoring it.
dlls/winemac.drv/cocoa_app.h
dlls/winemac.drv/cocoa_app.m
dlls/winemac.drv/cocoa_window.h
dlls/winemac.drv/cocoa_window.m