[mutter/gnome-3-26] Don't attempt to get monitor geometry on non-existent monitors



commit 71b4ef5940d16f7d3cb7dca5c224784315803492
Author: Jeremy Nickurak <jeremy nickurak ca>
Date:   Thu Jan 11 11:31:42 2018 -0700

    Don't attempt to get monitor geometry on non-existent monitors
    
    https://bugzilla.gnome.org/show_bug.cgi?id=788834

 src/x11/window-x11.c |   49 ++++++++++++++++++++++++++-----------------------
 1 files changed, 26 insertions(+), 23 deletions(-)
---
diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c
index 5a6f113..dd97276 100644
--- a/src/x11/window-x11.c
+++ b/src/x11/window-x11.c
@@ -2092,30 +2092,33 @@ meta_window_move_resize_request (MetaWindow *window,
       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)
+      if (window->monitor)
         {
-          /*
-          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_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);


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