soreau/weston — pull request #7 by rafalmiel (2013-03-18 13:30:51+00:00)
Title: shell: unsnap window when moving it in maximized state

Hi Scott,

This is unsnap maximized window functionality.

All the unsnap behaviour is implemented in shell_surface_configure, as it was the only place I could figure out, that will not cause flickering of the surface.

It basically works like that:
1. shell: detect move of maximized surface, set surface->next_type to TOPLEVEL
2. shell: ask client to unmaximize
3. client: send configure with original width/height
4: shell: move surface so that its grab point is in the top middle part of the surface using new dimensions provided by the client. Discard saved x, y (saved_position_valid = false)