diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2017-11-20 13:20:36 +0100 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2017-11-20 13:29:22 +0100 |
commit | cf4b5efdd1b5b4b357f3de044e51218e382a551d (patch) | |
tree | 2c8ff1b0a2683b619bdcb8ba187cd5dfb55e6a9e /src/backends/meta-cursor-tracker.c | |
parent | 3067dab84ce4ea57d7fb9e43d593ef183d9a6487 (diff) | |
download | mutter-cf4b5efdd1b5b4b357f3de044e51218e382a551d.tar.gz |
backends: Do NULL checks before disconnecting/connecting signals
The displayed cursor may be NULL.
https://bugzilla.gnome.org/show_bug.cgi?id=754806
Diffstat (limited to 'src/backends/meta-cursor-tracker.c')
-rw-r--r-- | 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 b29a72638..74fa4351d 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; } |