diff --git a/src/core/keybindings.c b/src/core/keybindings.c index 7f930874f..31d23c2be 100644 --- a/src/core/keybindings.c +++ b/src/core/keybindings.c @@ -3302,15 +3302,7 @@ handle_toggle_tiled (MetaDisplay *display, if ((META_WINDOW_TILED_LEFT (window) && mode == META_TILE_LEFT) || (META_WINDOW_TILED_RIGHT (window) && mode == META_TILE_RIGHT)) { - window->tile_monitor_number = window->saved_maximize ? window->monitor->number - : -1; - window->tile_mode = window->saved_maximize ? META_TILE_MAXIMIZED - : META_TILE_NONE; - - if (window->saved_maximize) - meta_window_maximize (window, META_MAXIMIZE_BOTH); - else - meta_window_unmaximize (window, META_MAXIMIZE_BOTH); + meta_window_untile (window); } else if (meta_window_can_tile_side_by_side (window)) { diff --git a/src/core/window-private.h b/src/core/window-private.h index 07f316e90..7f68eca7f 100644 --- a/src/core/window-private.h +++ b/src/core/window-private.h @@ -656,6 +656,9 @@ void meta_window_unmanage (MetaWindow *window, void meta_window_unmanage_on_idle (MetaWindow *window); void meta_window_queue (MetaWindow *window, guint queuebits); +META_EXPORT_TEST +void meta_window_untile (MetaWindow *window); + META_EXPORT_TEST void meta_window_tile (MetaWindow *window, MetaTileMode mode); diff --git a/src/core/window.c b/src/core/window.c index ea721f794..b66ae67f3 100644 --- a/src/core/window.c +++ b/src/core/window.c @@ -3148,6 +3148,22 @@ update_edge_constraints (MetaWindow *window) } } +void +meta_window_untile (MetaWindow *window) +{ + window->tile_monitor_number = + window->saved_maximize ? window->monitor->number + : -1; + window->tile_mode = + window->saved_maximize ? META_TILE_MAXIMIZED + : META_TILE_NONE; + + if (window->saved_maximize) + meta_window_maximize (window, META_MAXIMIZE_BOTH); + else + meta_window_unmaximize (window, META_MAXIMIZE_BOTH); +} + void meta_window_tile (MetaWindow *window, MetaTileMode tile_mode)