[mutter] window-x11: Handle legacy fullscreen requests



commit fba022cc06b8c7e80ef36f48d6577a251384cc4b
Author: Florian Müllner <fmuellner gnome org>
Date:   Mon Jun 9 21:43:04 2014 +0200

    window-x11: Handle legacy fullscreen requests
    
    Doing this on the actual resize requests makes more sense than
    handling it as a window-manager imposed constraints, so move
    the code accordingly.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=730681

 src/core/constraints.c |   30 ------------------------------
 src/x11/window-x11.c   |   28 +++++++++++++++++++++++++++-
 2 files changed, 27 insertions(+), 31 deletions(-)
---
diff --git a/src/core/constraints.c b/src/core/constraints.c
index f9b5668..8035cef 100644
--- a/src/core/constraints.c
+++ b/src/core/constraints.c
@@ -404,36 +404,6 @@ setup_constraint_info (ConstraintInfo      *info,
     meta_workspace_get_onmonitor_region (cur_workspace,
                                          monitor_info->number);
 
-  /* Workaround braindead legacy apps that don't know how to
-   * fullscreen themselves properly - don't get fooled by
-   * windows which hide their titlebar when maximized or which are
-   * client decorated; that's not the same as fullscreen, even
-   * if there are no struts making the workarea smaller than
-   * the monitor.
-   */
-
-  meta_window_frame_rect_to_client_rect (window, new, new);
-
-  if (meta_prefs_get_force_fullscreen() &&
-      window->client_type != META_WINDOW_CLIENT_TYPE_WAYLAND &&
-      !window->hide_titlebar_when_maximized &&
-      (window->decorated || !meta_window_is_client_decorated (window)) &&
-      meta_rectangle_equal (new, &monitor_info->rect) &&
-      window->has_fullscreen_func &&
-      !window->fullscreen)
-    {
-      /*
-      meta_topic (META_DEBUG_GEOMETRY,
-      */
-      meta_warning (
-                  "Treating resize request of legacy application %s as a "
-                  "fullscreen request\n",
-                  window->desc);
-      meta_window_make_fullscreen_internal (window);
-    }
-
-  meta_window_client_rect_to_frame_rect (window, new, new);
-
   /* Log all this information for debugging */
   meta_topic (META_DEBUG_GEOMETRY,
               "Setting up constraint info:\n"
diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c
index 3a9735d..f3189ba 100644
--- a/src/x11/window-x11.c
+++ b/src/x11/window-x11.c
@@ -2107,13 +2107,39 @@ meta_window_move_resize_request (MetaWindow *window,
 
   if (flags & (META_IS_MOVE_ACTION | META_IS_RESIZE_ACTION))
     {
-      MetaRectangle rect;
+      MetaRectangle rect, monitor_rect;
 
       rect.x = x;
       rect.y = y;
       rect.width = width;
       rect.height = height;
 
+      meta_screen_get_monitor_geometry (window->screen, window->monitor->number, &monitor_rect);
+
+      /* Workaround braindead legacy apps that don't know how to
+       * fullscreen themselves properly - don't get fooled by
+       * windows which hide their titlebar when maximized or which are
+       * client decorated; that's not the same as fullscreen, even
+       * if there are no struts making the workarea smaller than
+       * the monitor.
+       */
+      if (meta_prefs_get_force_fullscreen() &&
+          !window->hide_titlebar_when_maximized &&
+          (window->decorated || !meta_window_is_client_decorated (window)) &&
+          meta_rectangle_equal (&rect, &monitor_rect) &&
+          window->has_fullscreen_func &&
+          !window->fullscreen)
+        {
+          /*
+          meta_topic (META_DEBUG_GEOMETRY,
+          */
+          meta_warning (
+                      "Treating resize request of legacy application %s as a "
+                      "fullscreen request\n",
+                      window->desc);
+          meta_window_make_fullscreen_internal (window);
+        }
+
       adjust_for_gravity (window, TRUE, gravity, &rect);
       meta_window_client_rect_to_frame_rect (window, &rect, &rect);
       meta_window_move_resize_internal (window, flags, gravity, rect);


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