diff --git a/app/display/gimpdisplayshell-tool-events.c b/app/display/gimpdisplayshell-tool-events.c index 8fa6b4ef58..62805d66d0 100644 --- a/app/display/gimpdisplayshell-tool-events.c +++ b/app/display/gimpdisplayshell-tool-events.c @@ -1052,7 +1052,7 @@ gimp_display_shell_canvas_tool_events (GtkWidget *canvas, if (gimp_display_shell_key_to_state (kevent->keyval) == GDK_MOD1_MASK) /* Make sure the picked layer is reset. */ - shell->picked_layer = NULL; + g_clear_weak_pointer (&shell->picked_layer); switch (kevent->keyval) { @@ -1151,7 +1151,7 @@ gimp_display_shell_canvas_tool_events (GtkWidget *canvas, statusbar = gimp_display_shell_get_statusbar (shell); gimp_statusbar_pop_temp (statusbar); - shell->picked_layer = NULL; + g_clear_weak_pointer (&shell->picked_layer); shell->mod_action = GIMP_MODIFIER_ACTION_NONE; } else if (shell->mod_action != GIMP_MODIFIER_ACTION_NONE && @@ -1767,7 +1767,7 @@ gimp_display_shell_start_scrolling (GimpDisplayShell *shell, _("Layer picked: '%s'"), gimp_object_get_name (layer)); } - shell->picked_layer = layer; + g_set_weak_pointer (&shell->picked_layer, layer); } } break; diff --git a/app/display/gimpdisplayshell.c b/app/display/gimpdisplayshell.c index 96bbe37ebb..afbdef6cd5 100644 --- a/app/display/gimpdisplayshell.c +++ b/app/display/gimpdisplayshell.c @@ -920,6 +920,7 @@ gimp_display_shell_finalize (GObject *object) g_clear_object (&shell->no_image_options); g_clear_pointer (&shell->title, g_free); g_clear_pointer (&shell->status, g_free); + g_clear_weak_pointer (&shell->picked_layer); G_OBJECT_CLASS (parent_class)->finalize (object); }