From a71a3f174873afa0a7972e3aade9cc0d1e09f345 Mon Sep 17 00:00:00 2001 From: Packit Service Date: Jan 08 2021 06:13:10 +0000 Subject: Apply patch properties-window-Fix-crashes-when-cancelled.patch patch_name: properties-window-Fix-crashes-when-cancelled.patch present_in_specfile: true location_in_specfile: 26 --- diff --git a/src/nautilus-properties-window.c b/src/nautilus-properties-window.c index 2ef9a03..8783ac4 100644 --- a/src/nautilus-properties-window.c +++ b/src/nautilus-properties-window.c @@ -155,6 +155,7 @@ typedef struct NautilusPropertiesWindowCallback callback; gpointer callback_data; NautilusPropertiesWindow *window; + gboolean cancelled; } StartupData; /* drag and drop definitions */ @@ -5170,6 +5171,8 @@ get_existing_window (GList *file_list) static void properties_window_finish (StartupData *data) { + gboolean cancel_timed_wait; + if (data->parent_widget != NULL) { g_signal_handlers_disconnect_by_data (data->parent_widget, @@ -5181,14 +5184,21 @@ properties_window_finish (StartupData *data) data); } - remove_pending (data, TRUE, (data->window == NULL), FALSE); + cancel_timed_wait = (data->window == NULL && !data->cancelled); + remove_pending (data, TRUE, cancel_timed_wait, FALSE); + startup_data_free (data); } static void cancel_create_properties_window_callback (gpointer callback_data) { - properties_window_finish ((StartupData *) callback_data); + StartupData *data; + + data = callback_data; + data->cancelled = TRUE; + + properties_window_finish (data); } static void