From ffbac5095a321d530ec98f51148adbe7a05030d1 Mon Sep 17 00:00:00 2001
From: Andre Miranda <andreldm@xfce.org>
Date: Wed, 28 Feb 2024 19:50:13 +0100
Subject: [PATCH] Avoid unref'ing cursor prematurely

Closes #122
---
 lib/screenshooter-dialogs.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/lib/screenshooter-dialogs.c b/lib/screenshooter-dialogs.c
index f41e254f..272462f7 100644
--- a/lib/screenshooter-dialogs.c
+++ b/lib/screenshooter-dialogs.c
@@ -250,7 +250,10 @@ static void cb_imgur_toggled (GtkToggleButton *tb, ScreenshotData *sd)
 static void cb_imgur_warning_change_cursor (GtkWidget *widget, GdkCursor *cursor)
 {
   if (cursor != NULL)
-    gdk_window_set_cursor (gtk_widget_get_window (widget), cursor);
+    {
+      gdk_window_set_cursor (gtk_widget_get_window (widget), cursor);
+      g_object_unref (cursor);
+    }
 }
 
 
@@ -1371,9 +1374,8 @@ GtkWidget *screenshooter_actions_dialog_new (ScreenshotData *sd)
       gtk_container_add (GTK_CONTAINER (evbox), image);
 
       cursor = gdk_cursor_new_from_name (gdk_display_get_default (), "pointer");
-      g_signal_connect (evbox, "realize",
-                        G_CALLBACK (cb_imgur_warning_change_cursor), cursor);
-      g_object_unref (cursor);
+      if (cursor != NULL)
+        g_signal_connect (evbox, "realize", G_CALLBACK (cb_imgur_warning_change_cursor), cursor);
 
       label = gtk_label_new (NULL);
       gtk_label_set_markup (GTK_LABEL (label), _("<a href='https://gitlab.xfce.org/apps/xfce4-screenshooter/-/issues/115'>Deprecated!</a>"));
-- 
GitLab