core: Return -1 if meta_window_get_monitor is called on an unmanaged window
authorSam Spilsbury <sam@endlessm.com>
Tue, 10 Oct 2017 16:39:40 +0000 (11:39 -0500)
committerMarco Trevisan (Treviño) <marco@ubuntu.com>
Thu, 19 Jul 2018 13:59:38 +0000 (14:59 +0100)
As opposed to crashing. In this case, letting the caller deal with
it is the best policy, since this is public API.

Fixes #78834

Forwarded: yes
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=788834
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/bionic/+source/gnome-shell/+bug/1724439

Gbp-Pq: Name core-Return-1-if-meta_window_get_monitor-is-called-on-an-.patch

src/core/window.c

index 743326c60e19cc02af2f4f6d4f44859d637cd57d..441b5be0969807bbdfc94eacdf9db70b25618838 100644 (file)
@@ -3750,11 +3750,16 @@ maybe_move_attached_dialog (MetaWindow *window,
  *
  * Gets index of the monitor that this window is on.
  *
- * Return Value: The index of the monitor in the screens monitor list
+ * Return Value: The index of the monitor in the screens monitor list, or -1
+ * if the window has been recently unmanaged and does not have
+ * a monitor.
  */
 int
 meta_window_get_monitor (MetaWindow *window)
 {
+  if (!window->monitor)
+    return -1;
+
   return window->monitor->number;
 }