diff options
-rw-r--r-- | src/nautilus-files-view.c | 42 | ||||
-rw-r--r-- | src/nautilus-location-entry.c | 18 | ||||
-rw-r--r-- | src/nautilus-properties-window.c | 6 | ||||
-rw-r--r-- | src/nautilus-window.c | 27 |
4 files changed, 41 insertions, 52 deletions
diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c index f013fa68c..ef0b615c9 100644 --- a/src/nautilus-files-view.c +++ b/src/nautilus-files-view.c @@ -3248,7 +3248,7 @@ nautilus_files_view_set_selection (NautilusView *nautilus_files_view, } static void -nautilus_files_view_destroy (GtkWidget *object) +nautilus_files_view_dispose (GObject *object) { NautilusFilesView *view; NautilusFilesViewPrivate *priv; @@ -3341,11 +3341,18 @@ nautilus_files_view_destroy (GtkWidget *object) g_clear_object (&priv->search_query); g_clear_object (&priv->location); + g_clear_object (&priv->view_action_group); + g_clear_object (&priv->background_menu_model); + g_clear_object (&priv->selection_menu_model); + g_clear_object (&priv->toolbar_menu_sections->zoom_section); + g_clear_object (&priv->toolbar_menu_sections->extended_section); + g_clear_object (&priv->extensions_background_menu); + g_clear_object (&priv->templates_menu); + g_clear_object (&priv->rename_file_controller); + g_clear_object (&priv->new_folder_controller); + g_clear_object (&priv->compress_controller); - /* We don't own the slot, so no unref */ - priv->slot = NULL; - - GTK_WIDGET_CLASS (nautilus_files_view_parent_class)->destroy (object); + G_OBJECT_CLASS (nautilus_files_view_parent_class)->dispose (object); } static void @@ -3357,16 +3364,9 @@ nautilus_files_view_finalize (GObject *object) view = NAUTILUS_FILES_VIEW (object); priv = nautilus_files_view_get_instance_private (view); - g_clear_object (&priv->view_action_group); - g_clear_object (&priv->background_menu_model); - g_clear_object (&priv->selection_menu_model); - g_clear_object (&priv->toolbar_menu_sections->zoom_section); - g_clear_object (&priv->toolbar_menu_sections->extended_section); - g_clear_object (&priv->extensions_background_menu); - g_clear_object (&priv->templates_menu); - g_clear_object (&priv->rename_file_controller); - g_clear_object (&priv->new_folder_controller); - g_clear_object (&priv->compress_controller); + /* We don't own the slot, so no unref */ + priv->slot = NULL; + g_free (priv->toolbar_menu_sections); g_hash_table_destroy (priv->non_ready_files); @@ -7327,7 +7327,7 @@ on_clipboard_contents_received (GtkClipboard *clipboard, view = NAUTILUS_FILES_VIEW (user_data); priv = nautilus_files_view_get_instance_private (view); - if (priv->slot == NULL || + if (priv->in_destruction || !priv->active) { /* We've been destroyed or became inactive since call */ @@ -7369,7 +7369,7 @@ on_clipboard_targets_received (GtkClipboard *clipboard, priv = nautilus_files_view_get_instance_private (view); is_data_copied = FALSE; - if (priv->slot == NULL || + if (priv->in_destruction || !priv->active) { /* We've been destroyed or became inactive since call */ @@ -8400,7 +8400,7 @@ nautilus_files_view_update_toolbar_menus (NautilusFilesView *view) /* Don't update after destroy (#349551), * or if we are not active. */ - if (priv->slot == NULL || + if (priv->in_destruction || !priv->active) { return; @@ -8557,7 +8557,7 @@ schedule_update_context_menus (NautilusFilesView *view) /* Don't schedule updates after destroy (#349551), * or if we are not active. */ - if (priv->slot == NULL || + if (priv->in_destruction || !priv->active) { return; @@ -8608,7 +8608,7 @@ schedule_update_status (NautilusFilesView *view) priv = nautilus_files_view_get_instance_private (view); /* Make sure we haven't already destroyed it */ - if (priv->slot == NULL) + if (priv->in_destruction) { return; } @@ -9699,11 +9699,11 @@ nautilus_files_view_class_init (NautilusFilesViewClass *klass) widget_class = GTK_WIDGET_CLASS (klass); oclass = G_OBJECT_CLASS (klass); + oclass->dispose = nautilus_files_view_dispose; oclass->finalize = nautilus_files_view_finalize; oclass->get_property = nautilus_files_view_get_property; oclass->set_property = nautilus_files_view_set_property; - widget_class->destroy = nautilus_files_view_destroy; widget_class->event = nautilus_files_view_event; widget_class->parent_set = nautilus_files_view_parent_set; widget_class->grab_focus = nautilus_files_view_grab_focus; diff --git a/src/nautilus-location-entry.c b/src/nautilus-location-entry.c index 91b9ec7cb..4e1043396 100644 --- a/src/nautilus-location-entry.c +++ b/src/nautilus-location-entry.c @@ -576,18 +576,14 @@ finalize (GObject *object) entry = NAUTILUS_LOCATION_ENTRY (object); priv = nautilus_location_entry_get_instance_private (entry); - g_object_unref (priv->completer); g_free (priv->special_text); - - g_clear_object (&priv->last_location); - g_clear_object (&priv->completion); - g_clear_object (&priv->completions_store); + g_free (priv->current_directory); G_OBJECT_CLASS (nautilus_location_entry_parent_class)->finalize (object); } static void -destroy (GtkWidget *object) +nautilus_location_entry_dispose (GObject *object) { NautilusLocationEntry *entry; NautilusLocationEntryPrivate *priv; @@ -602,10 +598,12 @@ destroy (GtkWidget *object) priv->idle_id = 0; } - g_free (priv->current_directory); - priv->current_directory = NULL; + g_clear_object (&priv->completer); + g_clear_object (&priv->last_location); + g_clear_object (&priv->completion); + g_clear_object (&priv->completions_store); - GTK_WIDGET_CLASS (nautilus_location_entry_parent_class)->destroy (object); + G_OBJECT_CLASS (nautilus_location_entry_parent_class)->dispose (object); } static void @@ -851,10 +849,10 @@ nautilus_location_entry_class_init (NautilusLocationEntryClass *class) GtkBindingSet *binding_set; widget_class = GTK_WIDGET_CLASS (class); - widget_class->destroy = destroy; widget_class->event = nautilus_location_entry_on_event; gobject_class = G_OBJECT_CLASS (class); + gobject_class->dispose = nautilus_location_entry_dispose; gobject_class->finalize = finalize; entry_class = GTK_ENTRY_CLASS (class); diff --git a/src/nautilus-properties-window.c b/src/nautilus-properties-window.c index a841eed97..c0bfdaa79 100644 --- a/src/nautilus-properties-window.c +++ b/src/nautilus-properties-window.c @@ -5090,7 +5090,7 @@ nautilus_properties_window_present (GList *original_f } static void -real_destroy (GtkWidget *object) +real_dispose (GObject *object) { NautilusPropertiesWindow *self; @@ -5133,7 +5133,7 @@ real_destroy (GtkWidget *object) g_clear_handle_id (&self->update_directory_contents_timeout_id, g_source_remove); g_clear_handle_id (&self->update_files_timeout_id, g_source_remove); - GTK_WIDGET_CLASS (nautilus_properties_window_parent_class)->destroy (object); + G_OBJECT_CLASS (nautilus_properties_window_parent_class)->dispose (object); } static void @@ -5375,8 +5375,8 @@ nautilus_properties_window_class_init (NautilusPropertiesWindowClass *klass) widget_class = GTK_WIDGET_CLASS (klass); oclass = G_OBJECT_CLASS (klass); + oclass->dispose = real_dispose; oclass->finalize = real_finalize; - widget_class->destroy = real_destroy; binding_set = gtk_binding_set_by_class (klass); g_signal_new ("close", diff --git a/src/nautilus-window.c b/src/nautilus-window.c index 54566b94d..945f3a833 100644 --- a/src/nautilus-window.c +++ b/src/nautilus-window.c @@ -2181,8 +2181,9 @@ destroy_slots_foreach (gpointer data, close_slot (window, slot, TRUE); } + static void -nautilus_window_destroy (GtkWidget *object) +nautilus_window_dispose (GObject *object) { NautilusWindow *window; NautilusApplication *application; @@ -2209,23 +2210,19 @@ nautilus_window_destroy (GtkWidget *object) g_clear_weak_pointer (&window->active_slot); - g_clear_signal_handler (&window->bookmarks_id, nautilus_application_get_bookmarks (application)); + if (application != NULL) + { + g_clear_signal_handler (&window->bookmarks_id, nautilus_application_get_bookmarks (application)); + } g_clear_handle_id (&window->in_app_notification_undo_timeout_id, g_source_remove); nautilus_window_unexport_handle (window); - GTK_WIDGET_CLASS (nautilus_window_parent_class)->destroy (object); -} - -static void -nautilus_window_dispose (GObject *object) -{ - NautilusWindow *window; - - window = NAUTILUS_WINDOW (object); - + g_clear_object (&window->selected_file); + g_clear_object (&window->selected_volume); g_clear_object (&window->notebook_multi_press_gesture); + g_clear_object (&window->pad_controller); G_OBJECT_CLASS (nautilus_window_parent_class)->dispose (object); } @@ -2255,17 +2252,12 @@ nautilus_window_finalize (GObject *object) window->notification_operation_timeout_id = 0; } - g_clear_object (&window->selected_file); - g_clear_object (&window->selected_volume); - g_signal_handlers_disconnect_by_func (nautilus_file_undo_manager_get (), G_CALLBACK (nautilus_window_on_undo_changed), window); g_queue_free_full (window->tab_data_queue, free_navigation_state); - g_object_unref (window->pad_controller); - /* nautilus_window_close() should have run */ g_assert (window->slots == NULL); @@ -2744,7 +2736,6 @@ nautilus_window_class_init (NautilusWindowClass *class) oclass->finalize = nautilus_window_finalize; oclass->constructed = nautilus_window_constructed; - wclass->destroy = nautilus_window_destroy; wclass->show = nautilus_window_show; wclass->realize = nautilus_window_realize; wclass->key_press_event = nautilus_window_key_press_event; |