[mutter] window: Add meta_window_untile()



commit 668eb318c7ccc05b373b9da86ee21ed90e406653
Author: Jonas Ã…dahl <jadahl gmail com>
Date:   Thu Apr 2 19:04:43 2020 +0200

    window: Add meta_window_untile()
    
    It does the same as the untile keyboard shortcut does, i.e. handles
    going back to saved maximized state. It's split out to be able to be
    tested by the stacking tests.
    
    https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1171

 src/core/keybindings.c    | 10 +---------
 src/core/window-private.h |  3 +++
 src/core/window.c         | 16 ++++++++++++++++
 3 files changed, 20 insertions(+), 9 deletions(-)
---
diff --git a/src/core/keybindings.c b/src/core/keybindings.c
index 445b80d01..1189e716e 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 8af1bb3fa..0d1ff6831 100644
--- a/src/core/window-private.h
+++ b/src/core/window-private.h
@@ -646,6 +646,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 67dd0a5ba..a6b3110e1 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -3124,6 +3124,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)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]