Restore the original tile state when a drag is cancelled
If a drag operation is cancelled, the dragged window should be restored to its previous state/position. Implement this for tiled states. https://bugzilla.gnome.org/show_bug.cgi?id=639988
This commit is contained in:
parent
bca610ed50
commit
2eb8b09b1a
@ -1555,15 +1555,20 @@ process_mouse_move_resize_grab (MetaDisplay *display,
|
|||||||
if (window->tile_mode != META_TILE_NONE)
|
if (window->tile_mode != META_TILE_NONE)
|
||||||
meta_screen_tile_preview_hide (screen);
|
meta_screen_tile_preview_hide (screen);
|
||||||
|
|
||||||
|
/* Restore the original tile mode */
|
||||||
|
window->tile_mode = display->grab_tile_mode;
|
||||||
|
|
||||||
/* End move or resize and restore to original state. If the
|
/* End move or resize and restore to original state. If the
|
||||||
* window was a maximized window that had been "shaken loose" we
|
* window was a maximized window that had been "shaken loose" we
|
||||||
* need to remaximize it. In normal cases, we need to do a
|
* need to remaximize it. In normal cases, we need to do a
|
||||||
* moveresize now to get the position back to the original.
|
* moveresize now to get the position back to the original.
|
||||||
*/
|
*/
|
||||||
if (window->shaken_loose)
|
if (window->shaken_loose || window->tile_mode == META_TILE_MAXIMIZED)
|
||||||
meta_window_maximize (window,
|
meta_window_maximize (window,
|
||||||
META_MAXIMIZE_HORIZONTAL |
|
META_MAXIMIZE_HORIZONTAL |
|
||||||
META_MAXIMIZE_VERTICAL);
|
META_MAXIMIZE_VERTICAL);
|
||||||
|
else if (window->tile_mode != META_TILE_NONE)
|
||||||
|
meta_window_tile (window);
|
||||||
else
|
else
|
||||||
meta_window_move_resize (display->grab_window,
|
meta_window_move_resize (display->grab_window,
|
||||||
TRUE,
|
TRUE,
|
||||||
|
Loading…
Reference in New Issue
Block a user