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)
committerJeremy Bicha <jbicha@debian.org>
Tue, 17 Apr 2018 02:35:14 +0000 (03:35 +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 86f9d69b1dc89e868d44c223a117b9b29aa57c10..b1dcd80bdf033a36c73c40c872d887fdb262c8d9 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;
 }