[mutter] backends: Do NULL checks before disconnecting/connecting signals



commit cf4b5efdd1b5b4b357f3de044e51218e382a551d
Author: Carlos Garnacho <carlosg gnome org>
Date:   Mon Nov 20 13:20:36 2017 +0100

    backends: Do NULL checks before disconnecting/connecting signals
    
    The displayed cursor may be NULL.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=754806

 src/backends/meta-cursor-tracker.c |   19 ++++++++++++++-----
 1 files changed, 14 insertions(+), 5 deletions(-)
---
diff --git a/src/backends/meta-cursor-tracker.c b/src/backends/meta-cursor-tracker.c
index b29a726..74fa435 100644
--- a/src/backends/meta-cursor-tracker.c
+++ b/src/backends/meta-cursor-tracker.c
@@ -75,12 +75,21 @@ update_displayed_cursor (MetaCursorTracker *tracker)
   if (tracker->displayed_cursor == cursor)
     return FALSE;
 
-  g_signal_handlers_disconnect_by_func (tracker->displayed_cursor,
-                                        cursor_texture_updated,
-                                        tracker);
+  if (tracker->displayed_cursor)
+    {
+      g_signal_handlers_disconnect_by_func (tracker->displayed_cursor,
+                                            cursor_texture_updated,
+                                            tracker);
+    }
+
   g_set_object (&tracker->displayed_cursor, cursor);
-  g_signal_connect (tracker->displayed_cursor, "texture-changed",
-                    G_CALLBACK (cursor_texture_updated), tracker);
+
+  if (cursor)
+    {
+      g_signal_connect (cursor, "texture-changed",
+                        G_CALLBACK (cursor_texture_updated), tracker);
+    }
+
   return TRUE;
 }
 


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