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)
committerSimon McVittie <smcv@debian.org>
Sun, 20 May 2018 14:21:35 +0000 (15:21 +0100)
Forwarded: yes
Bug-GNOME: https://bugzilla.gnome.org/show_bug.cgi?id=788834
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/bionic/+source/gnome-shell/+bug/1724439

As opposed to crashing. In this case, letting the caller deal with
it is the best policy, since this is public API.

Fixes #78834

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;
 }