summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarin Adler <darin@src.gnome.org>2000-09-26 00:52:22 +0000
committerDarin Adler <darin@src.gnome.org>2000-09-26 00:52:22 +0000
commit2cd5440e93ea831f3ee4930e3e7baecdd5083e5a (patch)
tree164fc9cf41051e4a5a7a36847a06841a4cf0e901
parent38a590615d4d5a5d7ff1c1770d26bce2268db021 (diff)
downloadnautilus-2cd5440e93ea831f3ee4930e3e7baecdd5083e5a.tar.gz
Fixed bug bug 3264 (Tree view shows no branches for directories,
...HACK... nodes visible), bug 3290 (changing directory or refreshing causes Gdk to assert), bug 2420 (Need to free original key when removing model node), and other assorted problems. * components/tree/nautilus-tree-view.c: (insert_hack_node), (remove_hack_node), (nautilus_tree_view_insert_model_node): Fix problem where the hash table key was neither g_strdup'd on the way in, nor g_free'd on the way out. This caused all the problems with bad nesting in the tree view. * nautilus-installer/src/installer.c: (create_pixmap): * src/file-manager/fm-list-view.c: (install_row_images): * src/nautilus-theme-selector.c: (add_theme): Added more checks for NULL before calling gdk_bitmap_unref. * src/file-manager/fm-directory-view.c: (no_items_showing): Fixed a NautilusDirectory ref. count leak. * libnautilus-extensions/nautilus-font-factory.c: (unref_global_font_factory), (nautilus_get_current_font_factory): Unref the font factory on exit. (nautilus_font_factory_initialize_class), (font_hash_node_free), (free_one_hash_node), (destroy): Added code to actually destroy the font factory. (unref_fixed_font), (nautilus_font_factory_get_fallback_font): Unref the fixed font on exit. * libnautilus-extensions/nautilus-volume-monitor.c: (unref_global_volume_monitor), (nautilus_volume_monitor_get): Unref the volume monitor on exit. * src/nautilus-signaller.c: (unref_global_signaller), (nautilus_signaller_get_current): Unref the signaller on exit. * src/nautilus-component-adapter-factory.c: (nautilus_component_adapter_factory_initialize): Replaced some strange FIXMEs with a simpler one. (nautilus_component_adapter_factory_destroy): Fix a CORBA object reference leak. (nautilus_component_adapter_factory_get): Did a ref/sink. * components/adapter/nautilus-adapter-control-embed-strategy.c: (nautilus_adapter_control_embed_strategy_new): * components/adapter/nautilus-adapter-embeddable-embed-strategy.c: (nautilus_adapter_embeddable_embed_strategy_new): * components/adapter/nautilus-adapter-file-load-strategy.c: (nautilus_adapter_file_load_strategy_new): * components/adapter/nautilus-adapter-progressive-load-strategy.c: (nautilus_adapter_progressive_load_strategy_new): * components/adapter/nautilus-adapter-stream-load-strategy.c: (nautilus_adapter_stream_load_strategy_new): * components/adapter/nautilus-adapter.c: (nautilus_adapter_new): * components/rpmview/nautilus-rpm-verify-window.c: (nautilus_rpm_verify_window_new): * components/services/install/lib/eazel-install-object.c: (eazel_install_new), (eazel_install_new_with_config): * components/services/time/service/trilobite-eazel-time-service.c: (trilobite_eazel_time_service_new): * components/services/trilobite/libtrilobite/trilobite-service-pass wordquery.c: (trilobite_passwordquery_new): * components/services/trilobite/libtrilobite/trilobite-service.c: (trilobite_service_new): * components/tree/nautilus-tree-expansion-state.c: (nautilus_tree_expansion_state_new): * components/tree/nautilus-tree-model.c: (nautilus_tree_model_new): * components/tree/nautilus-tree-node.c: (nautilus_tree_node_new): * cut-n-paste-code/widgets/e-paned/e-hpaned.c: (e_hpaned_new): * cut-n-paste-code/widgets/e-paned/e-vpaned.c: (e_vpaned_new): * libnautilus-extensions/bonobo-stream-vfs.c: (bonobo_stream_create): * libnautilus-extensions/nautilus-any-width-bin.c: (nautilus_any_width_bin_new): * libnautilus-extensions/nautilus-background.c: (nautilus_background_new): * libnautilus-extensions/nautilus-bookmark.c: (nautilus_bookmark_new_with_icon): * libnautilus-extensions/nautilus-caption-table.c: (nautilus_caption_table_new): * libnautilus-extensions/nautilus-caption.c: (nautilus_caption_new): * libnautilus-extensions/nautilus-directory.c: (nautilus_directory_new): * libnautilus-extensions/nautilus-druid-page-eazel.c: (nautilus_druid_page_eazel_new), (nautilus_druid_page_eazel_new_with_vals): * libnautilus-extensions/nautilus-druid.c: (nautilus_druid_new): * libnautilus-extensions/nautilus-entry.c: (nautilus_entry_new): * libnautilus-extensions/nautilus-file-operations-progress.c: (nautilus_file_operations_progress_new): * libnautilus-extensions/nautilus-file.c: (nautilus_file_new_from_name), (nautilus_file_new_from_info): * libnautilus-extensions/nautilus-font-picker.c: (nautilus_font_picker_new): * libnautilus-extensions/nautilus-horizontal-splitter.c: (nautilus_horizontal_splitter_new): * libnautilus-extensions/nautilus-icon-container.c: (nautilus_icon_container_new): * libnautilus-extensions/nautilus-icon-factory.c: (get_icon_factory): * libnautilus-extensions/nautilus-image.c: (nautilus_image_new): * libnautilus-extensions/nautilus-keep-last-vertical-box.c: (nautilus_keep_last_vertical_box_new): * libnautilus-extensions/nautilus-label.c: (nautilus_label_new): * libnautilus-extensions/nautilus-list-column-title.c: (nautilus_list_column_title_new): * libnautilus-extensions/nautilus-list.c: (nautilus_list_new_with_titles): * libnautilus-extensions/nautilus-password-dialog.c: (nautilus_password_dialog_new): * libnautilus-extensions/nautilus-preference.c: (nautilus_preference_new_from_type): * libnautilus-extensions/nautilus-preferences-box.c: (nautilus_preferences_box_new): * libnautilus-extensions/nautilus-preferences-dialog.c: (nautilus_preferences_dialog_new): * libnautilus-extensions/nautilus-preferences-group.c: (nautilus_preferences_group_new): * libnautilus-extensions/nautilus-preferences-item.c: (nautilus_preferences_item_new): * libnautilus-extensions/nautilus-preferences-pane.c: (nautilus_preferences_pane_new): * libnautilus-extensions/nautilus-radio-button-group.c: (nautilus_radio_button_group_new): * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_new): * libnautilus-extensions/nautilus-string-picker.c: (nautilus_string_picker_new): * libnautilus-extensions/nautilus-text-caption.c: (nautilus_text_caption_new): * libnautilus-extensions/nautilus-undo-context.c: (nautilus_undo_context_new): * libnautilus-extensions/nautilus-undo-manager.c: (nautilus_undo_manager_new): * libnautilus-extensions/nautilus-user-level-manager.c: (user_level_manager_new): * libnautilus/nautilus-undo-transaction.c: (nautilus_undo_transaction_new): * libnautilus/nautilus-view.c: (nautilus_view_new_from_bonobo_control): * src/file-manager/nautilus-trash-monitor.c: (nautilus_trash_monitor_get): * src/nautilus-desktop-window.c: (nautilus_desktop_window_new): * src/nautilus-property-browser.c: (nautilus_property_browser_new): * src/nautilus-shell.c: (nautilus_shell_new): * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_new): * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_new): * src/nautilus-sidebar.c: (nautilus_sidebar_create_context_menu), (nautilus_sidebar_new): * src/nautilus-theme-selector.c: (nautilus_theme_selector_new): * src/nautilus-throbber.c: (nautilus_throbber_new): * src/nautilus-view-frame.c: (nautilus_view_frame_new): * src/nautilus-zoom-control.c: (nautilus_zoom_control_new): * src/nautilus-about.c: (nautilus_about_new): * src/nautilus-application.c: (nautilus_application_new), (nautilus_application_create_window): * src/nautilus-bookmark-list.c: (nautilus_bookmark_list_new): After Tim Janik explained that gtk_type_new is a low-level call to be avoided, changed most uses of gtk_type_new to gtk_object_new or gtk_widget_new. Also, after Owen and Havoc explained that you can't just ignore the floating bit, added ref/sink calls to the functions used to create objects where we don't use the floating scheme. * src/nautilus-zoom-control.c: (nautilus_zoom_control_button_press_event): Take advantage of the fact that the new menu is floating and don't bother with ref'ing. * libnautilus-extensions/nautilus-ctree.c: (nautilus_ctree_new_with_titles): Added a cast. * components/adapter/main.c: (adapter_factory_make_object): * components/hardware/main.c: (hardware_view_make_object): * components/services/install/lib/eazel-install-corba-callback.c: (eazel_install_callback_get_type), (eazel_install_callback_new): * libnautilus-extensions/nautilus-theme.c: (nautilus_theme_get_theme), (nautilus_theme_set_theme), (nautilus_theme_get_theme_data): Whitespace tweaks.
-rw-r--r--ChangeLog181
-rw-r--r--components/adapter/bonobo-stream-vfs.c2
-rw-r--r--components/adapter/main.c3
-rw-r--r--components/adapter/nautilus-adapter-control-embed-strategy.c4
-rw-r--r--components/adapter/nautilus-adapter-control-factory-embed-strategy.c4
-rw-r--r--components/adapter/nautilus-adapter-embeddable-embed-strategy.c4
-rw-r--r--components/adapter/nautilus-adapter-file-load-strategy.c4
-rw-r--r--components/adapter/nautilus-adapter-progressive-load-strategy.c4
-rw-r--r--components/adapter/nautilus-adapter-stream-load-strategy.c4
-rw-r--r--components/adapter/nautilus-adapter.c2
-rw-r--r--components/hardware/main.c4
-rw-r--r--components/rpmview/nautilus-rpm-verify-window.c4
-rw-r--r--components/services/install/lib/eazel-install-corba-callback.c7
-rw-r--r--components/services/install/lib/eazel-install-object.c10
-rw-r--r--components/services/time/service/trilobite-eazel-time-service.c6
-rw-r--r--components/services/trilobite/libtrilobite/trilobite-service-passwordquery.c6
-rw-r--r--components/services/trilobite/libtrilobite/trilobite-service.c2
-rw-r--r--components/tree/nautilus-tree-expansion-state.c9
-rw-r--r--components/tree/nautilus-tree-model.c4
-rw-r--r--components/tree/nautilus-tree-node.c4
-rw-r--r--components/tree/nautilus-tree-view.c36
-rw-r--r--cut-n-paste-code/widgets/e-paned/e-hpaned.c6
-rw-r--r--cut-n-paste-code/widgets/e-paned/e-vpaned.c6
-rw-r--r--libnautilus-extensions/bonobo-stream-vfs.c2
-rw-r--r--libnautilus-extensions/nautilus-any-width-bin.c8
-rw-r--r--libnautilus-extensions/nautilus-background.c6
-rw-r--r--libnautilus-extensions/nautilus-bookmark.c4
-rw-r--r--libnautilus-extensions/nautilus-caption-table.c8
-rw-r--r--libnautilus-extensions/nautilus-caption.c8
-rw-r--r--libnautilus-extensions/nautilus-ctree.c2
-rw-r--r--libnautilus-extensions/nautilus-directory.c6
-rw-r--r--libnautilus-extensions/nautilus-druid-page-eazel.c8
-rw-r--r--libnautilus-extensions/nautilus-druid.c2
-rw-r--r--libnautilus-extensions/nautilus-entry.c4
-rw-r--r--libnautilus-extensions/nautilus-file-operations-progress.c2
-rw-r--r--libnautilus-extensions/nautilus-file.c8
-rw-r--r--libnautilus-extensions/nautilus-font-factory.c168
-rw-r--r--libnautilus-extensions/nautilus-font-picker.c8
-rw-r--r--libnautilus-extensions/nautilus-horizontal-splitter.c2
-rw-r--r--libnautilus-extensions/nautilus-icon-container.c2
-rw-r--r--libnautilus-extensions/nautilus-icon-factory.c2
-rw-r--r--libnautilus-extensions/nautilus-image.c4
-rw-r--r--libnautilus-extensions/nautilus-keep-last-vertical-box.c2
-rw-r--r--libnautilus-extensions/nautilus-label.c4
-rw-r--r--libnautilus-extensions/nautilus-list-column-title.c11
-rw-r--r--libnautilus-extensions/nautilus-list.c2
-rw-r--r--libnautilus-extensions/nautilus-password-dialog.c4
-rw-r--r--libnautilus-extensions/nautilus-preference.c7
-rw-r--r--libnautilus-extensions/nautilus-preferences-box.c3
-rw-r--r--libnautilus-extensions/nautilus-preferences-dialog.c5
-rw-r--r--libnautilus-extensions/nautilus-preferences-group.c5
-rw-r--r--libnautilus-extensions/nautilus-preferences-item.c3
-rw-r--r--libnautilus-extensions/nautilus-preferences-pane.c5
-rw-r--r--libnautilus-extensions/nautilus-radio-button-group.c3
-rw-r--r--libnautilus-extensions/nautilus-scalable-font.c4
-rw-r--r--libnautilus-extensions/nautilus-string-picker.c8
-rw-r--r--libnautilus-extensions/nautilus-text-caption.c8
-rw-r--r--libnautilus-extensions/nautilus-theme.c8
-rw-r--r--libnautilus-extensions/nautilus-undo-context.c5
-rw-r--r--libnautilus-extensions/nautilus-undo-manager.c8
-rw-r--r--libnautilus-extensions/nautilus-user-level-manager.c2
-rw-r--r--libnautilus-extensions/nautilus-volume-monitor.c9
-rw-r--r--libnautilus-private/bonobo-stream-vfs.c2
-rw-r--r--libnautilus-private/nautilus-any-width-bin.c8
-rw-r--r--libnautilus-private/nautilus-background.c6
-rw-r--r--libnautilus-private/nautilus-bookmark.c4
-rw-r--r--libnautilus-private/nautilus-caption-table.c8
-rw-r--r--libnautilus-private/nautilus-caption.c8
-rw-r--r--libnautilus-private/nautilus-ctree.c2
-rw-r--r--libnautilus-private/nautilus-directory.c6
-rw-r--r--libnautilus-private/nautilus-druid-page-eazel.c8
-rw-r--r--libnautilus-private/nautilus-druid.c2
-rw-r--r--libnautilus-private/nautilus-entry.c4
-rw-r--r--libnautilus-private/nautilus-file-operations-progress.c2
-rw-r--r--libnautilus-private/nautilus-file.c8
-rw-r--r--libnautilus-private/nautilus-font-factory.c168
-rw-r--r--libnautilus-private/nautilus-font-picker.c8
-rw-r--r--libnautilus-private/nautilus-horizontal-splitter.c2
-rw-r--r--libnautilus-private/nautilus-icon-container.c2
-rw-r--r--libnautilus-private/nautilus-icon-factory.c2
-rw-r--r--libnautilus-private/nautilus-image.c4
-rw-r--r--libnautilus-private/nautilus-keep-last-vertical-box.c2
-rw-r--r--libnautilus-private/nautilus-label.c4
-rw-r--r--libnautilus-private/nautilus-list-column-title.c11
-rw-r--r--libnautilus-private/nautilus-list.c2
-rw-r--r--libnautilus-private/nautilus-password-dialog.c4
-rw-r--r--libnautilus-private/nautilus-preference.c7
-rw-r--r--libnautilus-private/nautilus-preferences-box.c3
-rw-r--r--libnautilus-private/nautilus-preferences-dialog.c5
-rw-r--r--libnautilus-private/nautilus-preferences-group.c5
-rw-r--r--libnautilus-private/nautilus-preferences-item.c3
-rw-r--r--libnautilus-private/nautilus-preferences-pane.c5
-rw-r--r--libnautilus-private/nautilus-radio-button-group.c3
-rw-r--r--libnautilus-private/nautilus-scalable-font.c4
-rw-r--r--libnautilus-private/nautilus-string-picker.c8
-rw-r--r--libnautilus-private/nautilus-text-caption.c8
-rw-r--r--libnautilus-private/nautilus-theme.c8
-rw-r--r--libnautilus-private/nautilus-undo-context.c5
-rw-r--r--libnautilus-private/nautilus-undo-manager.c8
-rw-r--r--libnautilus-private/nautilus-user-level-manager.c2
-rw-r--r--libnautilus-private/nautilus-volume-monitor.c9
-rw-r--r--libnautilus/nautilus-undo-transaction.c4
-rw-r--r--libnautilus/nautilus-view.c2
-rw-r--r--nautilus-installer/src/installer.c10
-rw-r--r--src/file-manager/fm-directory-view.c1
-rw-r--r--src/file-manager/fm-list-view.c4
-rw-r--r--src/file-manager/nautilus-trash-monitor.c5
-rw-r--r--src/nautilus-about.c4
-rw-r--r--src/nautilus-application.c11
-rw-r--r--src/nautilus-bookmark-list.c8
-rw-r--r--src/nautilus-component-adapter-factory.c37
-rw-r--r--src/nautilus-desktop-window.c2
-rw-r--r--src/nautilus-information-panel.c4
-rw-r--r--src/nautilus-property-browser.c6
-rw-r--r--src/nautilus-shell.c2
-rw-r--r--src/nautilus-sidebar-tabs.c4
-rw-r--r--src/nautilus-sidebar-title.c2
-rw-r--r--src/nautilus-sidebar.c4
-rw-r--r--src/nautilus-signaller.c28
-rw-r--r--src/nautilus-theme-selector.c8
-rw-r--r--src/nautilus-throbber.c7
-rw-r--r--src/nautilus-view-frame.c2
-rw-r--r--src/nautilus-zoom-control.c15
123 files changed, 740 insertions, 466 deletions
diff --git a/ChangeLog b/ChangeLog
index 2bb112e19..2bb4a4047 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,184 @@
+2000-09-25 Darin Adler <darin@eazel.com>
+
+ Fixed bug bug 3264 (Tree view shows no branches for directories,
+ ...HACK... nodes visible), bug 3290 (changing directory or
+ refreshing causes Gdk to assert), bug 2420 (Need to free original
+ key when removing model node), and other assorted problems.
+
+ * components/tree/nautilus-tree-view.c: (insert_hack_node),
+ (remove_hack_node), (nautilus_tree_view_insert_model_node):
+ Fix problem where the hash table key was neither g_strdup'd on the
+ way in, nor g_free'd on the way out. This caused all the problems
+ with bad nesting in the tree view.
+
+ * nautilus-installer/src/installer.c: (create_pixmap):
+ * src/file-manager/fm-list-view.c: (install_row_images):
+ * src/nautilus-theme-selector.c: (add_theme):
+ Added more checks for NULL before calling gdk_bitmap_unref.
+
+ * src/file-manager/fm-directory-view.c: (no_items_showing):
+ Fixed a NautilusDirectory ref. count leak.
+
+ * libnautilus-extensions/nautilus-font-factory.c:
+ (unref_global_font_factory), (nautilus_get_current_font_factory):
+ Unref the font factory on exit.
+ (nautilus_font_factory_initialize_class), (font_hash_node_free),
+ (free_one_hash_node), (destroy): Added code to actually destroy
+ the font factory.
+ (unref_fixed_font), (nautilus_font_factory_get_fallback_font):
+ Unref the fixed font on exit.
+ * libnautilus-extensions/nautilus-volume-monitor.c:
+ (unref_global_volume_monitor), (nautilus_volume_monitor_get):
+ Unref the volume monitor on exit.
+ * src/nautilus-signaller.c: (unref_global_signaller),
+ (nautilus_signaller_get_current): Unref the signaller on exit.
+
+ * src/nautilus-component-adapter-factory.c:
+ (nautilus_component_adapter_factory_initialize): Replaced some
+ strange FIXMEs with a simpler one.
+ (nautilus_component_adapter_factory_destroy): Fix a CORBA object
+ reference leak.
+ (nautilus_component_adapter_factory_get): Did a ref/sink.
+
+ * components/adapter/nautilus-adapter-control-embed-strategy.c:
+ (nautilus_adapter_control_embed_strategy_new):
+ * components/adapter/nautilus-adapter-embeddable-embed-strategy.c:
+ (nautilus_adapter_embeddable_embed_strategy_new):
+ * components/adapter/nautilus-adapter-file-load-strategy.c:
+ (nautilus_adapter_file_load_strategy_new):
+ * components/adapter/nautilus-adapter-progressive-load-strategy.c:
+ (nautilus_adapter_progressive_load_strategy_new):
+ * components/adapter/nautilus-adapter-stream-load-strategy.c:
+ (nautilus_adapter_stream_load_strategy_new):
+ * components/adapter/nautilus-adapter.c: (nautilus_adapter_new):
+ * components/rpmview/nautilus-rpm-verify-window.c:
+ (nautilus_rpm_verify_window_new):
+ * components/services/install/lib/eazel-install-object.c:
+ (eazel_install_new), (eazel_install_new_with_config):
+ * components/services/time/service/trilobite-eazel-time-service.c:
+ (trilobite_eazel_time_service_new):
+ * components/services/trilobite/libtrilobite/trilobite-service-pass
+ wordquery.c: (trilobite_passwordquery_new):
+ * components/services/trilobite/libtrilobite/trilobite-service.c:
+ (trilobite_service_new):
+ * components/tree/nautilus-tree-expansion-state.c:
+ (nautilus_tree_expansion_state_new):
+ * components/tree/nautilus-tree-model.c: (nautilus_tree_model_new):
+ * components/tree/nautilus-tree-node.c: (nautilus_tree_node_new):
+ * cut-n-paste-code/widgets/e-paned/e-hpaned.c: (e_hpaned_new):
+ * cut-n-paste-code/widgets/e-paned/e-vpaned.c: (e_vpaned_new):
+ * libnautilus-extensions/bonobo-stream-vfs.c:
+ (bonobo_stream_create):
+ * libnautilus-extensions/nautilus-any-width-bin.c:
+ (nautilus_any_width_bin_new):
+ * libnautilus-extensions/nautilus-background.c:
+ (nautilus_background_new):
+ * libnautilus-extensions/nautilus-bookmark.c:
+ (nautilus_bookmark_new_with_icon):
+ * libnautilus-extensions/nautilus-caption-table.c:
+ (nautilus_caption_table_new):
+ * libnautilus-extensions/nautilus-caption.c:
+ (nautilus_caption_new):
+ * libnautilus-extensions/nautilus-directory.c:
+ (nautilus_directory_new):
+ * libnautilus-extensions/nautilus-druid-page-eazel.c:
+ (nautilus_druid_page_eazel_new),
+ (nautilus_druid_page_eazel_new_with_vals):
+ * libnautilus-extensions/nautilus-druid.c: (nautilus_druid_new):
+ * libnautilus-extensions/nautilus-entry.c: (nautilus_entry_new):
+ * libnautilus-extensions/nautilus-file-operations-progress.c:
+ (nautilus_file_operations_progress_new):
+ * libnautilus-extensions/nautilus-file.c:
+ (nautilus_file_new_from_name), (nautilus_file_new_from_info):
+ * libnautilus-extensions/nautilus-font-picker.c:
+ (nautilus_font_picker_new):
+ * libnautilus-extensions/nautilus-horizontal-splitter.c:
+ (nautilus_horizontal_splitter_new):
+ * libnautilus-extensions/nautilus-icon-container.c:
+ (nautilus_icon_container_new):
+ * libnautilus-extensions/nautilus-icon-factory.c:
+ (get_icon_factory):
+ * libnautilus-extensions/nautilus-image.c: (nautilus_image_new):
+ * libnautilus-extensions/nautilus-keep-last-vertical-box.c:
+ (nautilus_keep_last_vertical_box_new):
+ * libnautilus-extensions/nautilus-label.c: (nautilus_label_new):
+ * libnautilus-extensions/nautilus-list-column-title.c:
+ (nautilus_list_column_title_new):
+ * libnautilus-extensions/nautilus-list.c:
+ (nautilus_list_new_with_titles):
+ * libnautilus-extensions/nautilus-password-dialog.c:
+ (nautilus_password_dialog_new):
+ * libnautilus-extensions/nautilus-preference.c:
+ (nautilus_preference_new_from_type):
+ * libnautilus-extensions/nautilus-preferences-box.c:
+ (nautilus_preferences_box_new):
+ * libnautilus-extensions/nautilus-preferences-dialog.c:
+ (nautilus_preferences_dialog_new):
+ * libnautilus-extensions/nautilus-preferences-group.c:
+ (nautilus_preferences_group_new):
+ * libnautilus-extensions/nautilus-preferences-item.c:
+ (nautilus_preferences_item_new):
+ * libnautilus-extensions/nautilus-preferences-pane.c:
+ (nautilus_preferences_pane_new):
+ * libnautilus-extensions/nautilus-radio-button-group.c:
+ (nautilus_radio_button_group_new):
+ * libnautilus-extensions/nautilus-scalable-font.c:
+ (nautilus_scalable_font_new):
+ * libnautilus-extensions/nautilus-string-picker.c:
+ (nautilus_string_picker_new):
+ * libnautilus-extensions/nautilus-text-caption.c:
+ (nautilus_text_caption_new):
+ * libnautilus-extensions/nautilus-undo-context.c:
+ (nautilus_undo_context_new):
+ * libnautilus-extensions/nautilus-undo-manager.c:
+ (nautilus_undo_manager_new):
+ * libnautilus-extensions/nautilus-user-level-manager.c:
+ (user_level_manager_new):
+ * libnautilus/nautilus-undo-transaction.c:
+ (nautilus_undo_transaction_new):
+ * libnautilus/nautilus-view.c:
+ (nautilus_view_new_from_bonobo_control):
+ * src/file-manager/nautilus-trash-monitor.c:
+ (nautilus_trash_monitor_get):
+ * src/nautilus-desktop-window.c: (nautilus_desktop_window_new):
+ * src/nautilus-property-browser.c: (nautilus_property_browser_new):
+ * src/nautilus-shell.c: (nautilus_shell_new):
+ * src/nautilus-sidebar-tabs.c: (nautilus_sidebar_tabs_new):
+ * src/nautilus-sidebar-title.c: (nautilus_sidebar_title_new):
+ * src/nautilus-sidebar.c: (nautilus_sidebar_create_context_menu),
+ (nautilus_sidebar_new):
+ * src/nautilus-theme-selector.c: (nautilus_theme_selector_new):
+ * src/nautilus-throbber.c: (nautilus_throbber_new):
+ * src/nautilus-view-frame.c: (nautilus_view_frame_new):
+ * src/nautilus-zoom-control.c: (nautilus_zoom_control_new):
+ * src/nautilus-about.c: (nautilus_about_new):
+ * src/nautilus-application.c: (nautilus_application_new),
+ (nautilus_application_create_window):
+ * src/nautilus-bookmark-list.c: (nautilus_bookmark_list_new):
+ After Tim Janik explained that gtk_type_new is a low-level call to
+ be avoided, changed most uses of gtk_type_new to gtk_object_new or
+ gtk_widget_new. Also, after Owen and Havoc explained that you
+ can't just ignore the floating bit, added ref/sink calls to the
+ functions used to create objects where we don't use the floating
+ scheme.
+
+ * src/nautilus-zoom-control.c:
+ (nautilus_zoom_control_button_press_event): Take advantage of the
+ fact that the new menu is floating and don't bother with ref'ing.
+
+ * libnautilus-extensions/nautilus-ctree.c:
+ (nautilus_ctree_new_with_titles):
+ Added a cast.
+
+ * components/adapter/main.c: (adapter_factory_make_object):
+ * components/hardware/main.c: (hardware_view_make_object):
+ * components/services/install/lib/eazel-install-corba-callback.c:
+ (eazel_install_callback_get_type), (eazel_install_callback_new):
+ * libnautilus-extensions/nautilus-theme.c:
+ (nautilus_theme_get_theme), (nautilus_theme_set_theme),
+ (nautilus_theme_get_theme_data):
+ Whitespace tweaks.
+
2000-09-25 Andy Hertzfeld <andy@eazel.com>
* libnautilus-extensions/nautilus-icon-canvas-item.c:
diff --git a/components/adapter/bonobo-stream-vfs.c b/components/adapter/bonobo-stream-vfs.c
index ef4b9896c..da7a9794c 100644
--- a/components/adapter/bonobo-stream-vfs.c
+++ b/components/adapter/bonobo-stream-vfs.c
@@ -346,7 +346,7 @@ bonobo_stream_create (GnomeVFSHandle *fd)
Bonobo_Stream corba_stream;
CORBA_Environment ev;
- stream_vfs = gtk_type_new (bonobo_stream_vfs_get_type ());
+ stream_vfs = BONOBO_STREAM_VFS (gtk_object_new (bonobo_stream_vfs_get_type (), NULL));
stream_vfs->fd = fd;
diff --git a/components/adapter/main.c b/components/adapter/main.c
index 801c76afc..a9ec391ed 100644
--- a/components/adapter/main.c
+++ b/components/adapter/main.c
@@ -39,8 +39,6 @@
#include <libgnomevfs/gnome-vfs-init.h>
#define META_FACTORY_IID "OAFIID:nautilus_adapter_factory_generic_factory:8e62e106-807d-4d37-b14a-00dc82ecf88f"
-
-
#define FACTORY_OBJECT_IID "OAFIID:nautilus_adapter_factory:fd24ecfc-0a6e-47ab-bc53-69d7487c6ad4"
static int object_count = 0;
@@ -81,7 +79,6 @@ adapter_factory_make_object (BonoboGenericFactory *factory,
*/
adapter = NAUTILUS_ADAPTER_FACTORY_SERVER (gtk_object_new (NAUTILUS_TYPE_ADAPTER_FACTORY_SERVER, NULL));
-
/* Connect a handler that will get us out of the main loop
* when there are no more objects outstanding.
*/
diff --git a/components/adapter/nautilus-adapter-control-embed-strategy.c b/components/adapter/nautilus-adapter-control-embed-strategy.c
index cb573125f..7753e9cbf 100644
--- a/components/adapter/nautilus-adapter-control-embed-strategy.c
+++ b/components/adapter/nautilus-adapter-control-embed-strategy.c
@@ -119,7 +119,9 @@ nautilus_adapter_control_embed_strategy_new (Bonobo_Control control,
{
NautilusAdapterControlEmbedStrategy *strategy;
- strategy = NAUTILUS_ADAPTER_CONTROL_EMBED_STRATEGY (gtk_type_new (NAUTILUS_TYPE_ADAPTER_CONTROL_EMBED_STRATEGY));
+ strategy = NAUTILUS_ADAPTER_CONTROL_EMBED_STRATEGY (gtk_object_new (NAUTILUS_TYPE_ADAPTER_CONTROL_EMBED_STRATEGY, NULL));
+ gtk_object_ref (GTK_OBJECT (strategy));
+ gtk_object_sink (GTK_OBJECT (strategy));
strategy->details->control = control;
strategy->details->control_frame = bonobo_control_frame_new(uih);
diff --git a/components/adapter/nautilus-adapter-control-factory-embed-strategy.c b/components/adapter/nautilus-adapter-control-factory-embed-strategy.c
index fef3d7297..4858427f2 100644
--- a/components/adapter/nautilus-adapter-control-factory-embed-strategy.c
+++ b/components/adapter/nautilus-adapter-control-factory-embed-strategy.c
@@ -124,7 +124,9 @@ nautilus_adapter_embeddable_embed_strategy_new (Bonobo_Embeddable embeddable,
{
NautilusAdapterEmbeddableEmbedStrategy *strategy;
- strategy = NAUTILUS_ADAPTER_EMBEDDABLE_EMBED_STRATEGY (gtk_type_new (NAUTILUS_TYPE_ADAPTER_EMBEDDABLE_EMBED_STRATEGY));
+ strategy = NAUTILUS_ADAPTER_EMBEDDABLE_EMBED_STRATEGY (gtk_object_new (NAUTILUS_TYPE_ADAPTER_EMBEDDABLE_EMBED_STRATEGY, NULL));
+ gtk_object_ref (GTK_OBJECT (strategy));
+ gtk_object_sink (GTK_OBJECT (strategy));
strategy->details->embeddable_wrapper = bonobo_object_client_from_corba (embeddable);
diff --git a/components/adapter/nautilus-adapter-embeddable-embed-strategy.c b/components/adapter/nautilus-adapter-embeddable-embed-strategy.c
index fef3d7297..4858427f2 100644
--- a/components/adapter/nautilus-adapter-embeddable-embed-strategy.c
+++ b/components/adapter/nautilus-adapter-embeddable-embed-strategy.c
@@ -124,7 +124,9 @@ nautilus_adapter_embeddable_embed_strategy_new (Bonobo_Embeddable embeddable,
{
NautilusAdapterEmbeddableEmbedStrategy *strategy;
- strategy = NAUTILUS_ADAPTER_EMBEDDABLE_EMBED_STRATEGY (gtk_type_new (NAUTILUS_TYPE_ADAPTER_EMBEDDABLE_EMBED_STRATEGY));
+ strategy = NAUTILUS_ADAPTER_EMBEDDABLE_EMBED_STRATEGY (gtk_object_new (NAUTILUS_TYPE_ADAPTER_EMBEDDABLE_EMBED_STRATEGY, NULL));
+ gtk_object_ref (GTK_OBJECT (strategy));
+ gtk_object_sink (GTK_OBJECT (strategy));
strategy->details->embeddable_wrapper = bonobo_object_client_from_corba (embeddable);
diff --git a/components/adapter/nautilus-adapter-file-load-strategy.c b/components/adapter/nautilus-adapter-file-load-strategy.c
index f4eb4d073..f93cc4cf7 100644
--- a/components/adapter/nautilus-adapter-file-load-strategy.c
+++ b/components/adapter/nautilus-adapter-file-load-strategy.c
@@ -107,7 +107,9 @@ nautilus_adapter_file_load_strategy_new (Bonobo_PersistFile persist_file,
{
NautilusAdapterFileLoadStrategy *strategy;
- strategy = NAUTILUS_ADAPTER_FILE_LOAD_STRATEGY (gtk_type_new (NAUTILUS_TYPE_ADAPTER_FILE_LOAD_STRATEGY));
+ strategy = NAUTILUS_ADAPTER_FILE_LOAD_STRATEGY (gtk_object_new (NAUTILUS_TYPE_ADAPTER_FILE_LOAD_STRATEGY, NULL));
+ gtk_object_ref (GTK_OBJECT (strategy));
+ gtk_object_sink (GTK_OBJECT (strategy));
strategy->details->persist_file = persist_file;
strategy->details->nautilus_view = view;
diff --git a/components/adapter/nautilus-adapter-progressive-load-strategy.c b/components/adapter/nautilus-adapter-progressive-load-strategy.c
index a97567f03..12bad24c3 100644
--- a/components/adapter/nautilus-adapter-progressive-load-strategy.c
+++ b/components/adapter/nautilus-adapter-progressive-load-strategy.c
@@ -108,7 +108,9 @@ nautilus_adapter_progressive_load_strategy_new (Bonobo_ProgressiveDataSink prog
{
NautilusAdapterProgressiveLoadStrategy *strategy;
- strategy = NAUTILUS_ADAPTER_PROGRESSIVE_LOAD_STRATEGY (gtk_type_new (NAUTILUS_TYPE_ADAPTER_PROGRESSIVE_LOAD_STRATEGY));
+ strategy = NAUTILUS_ADAPTER_PROGRESSIVE_LOAD_STRATEGY (gtk_object_new (NAUTILUS_TYPE_ADAPTER_PROGRESSIVE_LOAD_STRATEGY, NULL));
+ gtk_object_ref (GTK_OBJECT (strategy));
+ gtk_object_sink (GTK_OBJECT (strategy));
strategy->details->progressive_data_sink = progressive_data_sink;
strategy->details->nautilus_view = view;
diff --git a/components/adapter/nautilus-adapter-stream-load-strategy.c b/components/adapter/nautilus-adapter-stream-load-strategy.c
index 576b1a30a..c1f805784 100644
--- a/components/adapter/nautilus-adapter-stream-load-strategy.c
+++ b/components/adapter/nautilus-adapter-stream-load-strategy.c
@@ -104,7 +104,9 @@ nautilus_adapter_stream_load_strategy_new (Bonobo_PersistStream persist_stream,
{
NautilusAdapterStreamLoadStrategy *strategy;
- strategy = NAUTILUS_ADAPTER_STREAM_LOAD_STRATEGY (gtk_type_new (NAUTILUS_TYPE_ADAPTER_STREAM_LOAD_STRATEGY));
+ strategy = NAUTILUS_ADAPTER_STREAM_LOAD_STRATEGY (gtk_object_new (NAUTILUS_TYPE_ADAPTER_STREAM_LOAD_STRATEGY, NULL));
+ gtk_object_ref (GTK_OBJECT (strategy));
+ gtk_object_sink (GTK_OBJECT (strategy));
strategy->details->persist_stream = persist_stream;
strategy->details->nautilus_view = view;
diff --git a/components/adapter/nautilus-adapter.c b/components/adapter/nautilus-adapter.c
index 5f98f2bba..7b1bdd96b 100644
--- a/components/adapter/nautilus-adapter.c
+++ b/components/adapter/nautilus-adapter.c
@@ -135,7 +135,7 @@ nautilus_adapter_new (Bonobo_Unknown component)
CORBA_exception_init (&ev);
- adapter = NAUTILUS_ADAPTER (gtk_type_new (NAUTILUS_TYPE_ADAPTER));
+ adapter = NAUTILUS_ADAPTER (gtk_object_new (NAUTILUS_TYPE_ADAPTER, NULL));
/* Set up a few wrapper framework details */
diff --git a/components/hardware/main.c b/components/hardware/main.c
index d6dd52710..b1d76de66 100644
--- a/components/hardware/main.c
+++ b/components/hardware/main.c
@@ -44,8 +44,8 @@ hardware_view_object_destroyed(GtkObject *obj)
static BonoboObject *
hardware_view_make_object (BonoboGenericFactory *factory,
- const char *goad_id,
- void *closure)
+ const char *goad_id,
+ void *closure)
{
NautilusHardwareView *hardware_view;
diff --git a/components/rpmview/nautilus-rpm-verify-window.c b/components/rpmview/nautilus-rpm-verify-window.c
index 6448a65d6..28daf31e7 100644
--- a/components/rpmview/nautilus-rpm-verify-window.c
+++ b/components/rpmview/nautilus-rpm-verify-window.c
@@ -170,13 +170,13 @@ nautilus_rpm_verify_window_initialize (NautilusRPMVerifyWindow *rpm_verify_windo
}
/* allocate a new rpm_verify_window dialog */
-GtkWidget*
+GtkWidget *
nautilus_rpm_verify_window_new (const char *package_name)
{
char *title_string;
NautilusRPMVerifyWindow *rpm_verify_window;
- rpm_verify_window = gtk_type_new (nautilus_rpm_verify_window_get_type ());
+ rpm_verify_window = NAUTILUS_RPM_VERIFY_WINDOW (gtk_widget_new (nautilus_rpm_verify_window_get_type (), NULL));
/* set up the window title */
title_string = g_strdup_printf (_("Verifying %s..."), package_name);
diff --git a/components/services/install/lib/eazel-install-corba-callback.c b/components/services/install/lib/eazel-install-corba-callback.c
index 75ac073ca..7a0400fca 100644
--- a/components/services/install/lib/eazel-install-corba-callback.c
+++ b/components/services/install/lib/eazel-install-corba-callback.c
@@ -468,7 +468,8 @@ eazel_install_callback_initialize (EazelInstallCallback *service) {
}
GtkType
-eazel_install_callback_get_type() {
+eazel_install_callback_get_type (void)
+{
static GtkType service_type = 0;
/* g_message ("into eazel_install_callback_get_type"); */
@@ -494,8 +495,8 @@ eazel_install_callback_get_type() {
return service_type;
}
-EazelInstallCallback*
-eazel_install_callback_new()
+EazelInstallCallback *
+eazel_install_callback_new (void)
{
EazelInstallCallback *service;
diff --git a/components/services/install/lib/eazel-install-object.c b/components/services/install/lib/eazel-install-object.c
index ee3ff6df8..b666b724b 100644
--- a/components/services/install/lib/eazel-install-object.c
+++ b/components/services/install/lib/eazel-install-object.c
@@ -610,17 +610,19 @@ eazel_install_get_type() {
return service_type;
}
-EazelInstall*
-eazel_install_new()
+EazelInstall *
+eazel_install_new (void)
{
EazelInstall *service;
service = EAZEL_INSTALL (gtk_object_new (TYPE_EAZEL_INSTALL, NULL));
+ gtk_object_ref (GTK_OBJECT (service));
+ gtk_object_sink (GTK_OBJECT (service));
return service;
}
-EazelInstall*
+EazelInstall *
eazel_install_new_with_config (void)
{
EazelInstall *service;
@@ -653,6 +655,8 @@ eazel_install_new_with_config (void)
"server_port", topts->port_number,
"cgi_path", topts->cgi_path,
NULL));
+ gtk_object_ref (GTK_OBJECT (service));
+ gtk_object_sink (GTK_OBJECT (service));
transferoptions_destroy (topts);
installoptions_destroy (iopts);
diff --git a/components/services/time/service/trilobite-eazel-time-service.c b/components/services/time/service/trilobite-eazel-time-service.c
index b1ce7f771..95e70f0ae 100644
--- a/components/services/time/service/trilobite-eazel-time-service.c
+++ b/components/services/time/service/trilobite-eazel-time-service.c
@@ -375,14 +375,16 @@ trilobite_eazel_time_service_get_type() {
The _new method simply builds the service
using gtk_object_new
*/
-TrilobiteEazelTimeService*
-trilobite_eazel_time_service_new()
+TrilobiteEazelTimeService *
+trilobite_eazel_time_service_new (void)
{
TrilobiteEazelTimeService *service;
/* g_message ("in trilobite_eazel_time_service_new"); */
service = TRILOBITE_EAZEL_TIME_SERVICE (gtk_object_new (TRILOBITE_TYPE_EAZEL_TIME_SERVICE, NULL));
+ gtk_object_ref (GTK_OBJECT (service));
+ gtk_object_sink (GTK_OBJECT (service));
return service;
}
diff --git a/components/services/trilobite/libtrilobite/trilobite-service-passwordquery.c b/components/services/trilobite/libtrilobite/trilobite-service-passwordquery.c
index a948530e9..08aef4284 100644
--- a/components/services/trilobite/libtrilobite/trilobite-service-passwordquery.c
+++ b/components/services/trilobite/libtrilobite/trilobite-service-passwordquery.c
@@ -282,14 +282,14 @@ trilobite_passwordquery_get_type (void)
return trilobite_passwordquery_type;
}
-TrilobitePasswordQuery*
-trilobite_passwordquery_new()
+TrilobitePasswordQuery *
+trilobite_passwordquery_new (void)
{
TrilobitePasswordQuery *trilobite;
/* g_message ("in trilobite_passwordquery_new"); */
- trilobite = TRILOBITE_PASSWORDQUERY (gtk_type_new (TRILOBITE_TYPE_PASSWORDQUERY));
+ trilobite = TRILOBITE_PASSWORDQUERY (gtk_object_new (TRILOBITE_TYPE_PASSWORDQUERY, NULL));
if (trilobite == NULL) {
g_warning ("Could not create a TrilobitePasswordQuery*");
diff --git a/components/services/trilobite/libtrilobite/trilobite-service.c b/components/services/trilobite/libtrilobite/trilobite-service.c
index 518fd5ea1..b1c0ebc08 100644
--- a/components/services/trilobite/libtrilobite/trilobite-service.c
+++ b/components/services/trilobite/libtrilobite/trilobite-service.c
@@ -475,7 +475,7 @@ trilobite_service_new()
/* g_message ("in trilobite_service_new"); */
- trilobite = TRILOBITE_SERVICE (gtk_type_new (TRILOBITE_TYPE_SERVICE));
+ trilobite = TRILOBITE_SERVICE (gtk_object_new (TRILOBITE_TYPE_SERVICE, NULL));
if (trilobite == NULL) {
g_warning ("Could not create a TrilobiteService*");
diff --git a/components/tree/nautilus-tree-expansion-state.c b/components/tree/nautilus-tree-expansion-state.c
index c22510451..8ff716e96 100644
--- a/components/tree/nautilus-tree-expansion-state.c
+++ b/components/tree/nautilus-tree-expansion-state.c
@@ -162,9 +162,14 @@ nautilus_tree_expansion_state_destroy (GtkObject *object)
NautilusTreeExpansionState *
-nautilus_tree_expansion_state_new ()
+nautilus_tree_expansion_state_new (void)
{
- return NAUTILUS_TREE_EXPANSION_STATE (gtk_type_new (NAUTILUS_TYPE_TREE_EXPANSION_STATE));
+ NautilusTreeExpansionState *state;
+
+ state = NAUTILUS_TREE_EXPANSION_STATE (gtk_object_new (NAUTILUS_TYPE_TREE_EXPANSION_STATE, NULL));
+ gtk_object_ref (GTK_OBJECT (state));
+ gtk_object_sink (GTK_OBJECT (state));
+ return state;
}
diff --git a/components/tree/nautilus-tree-model.c b/components/tree/nautilus-tree-model.c
index e610e7156..a70f6b2ea 100644
--- a/components/tree/nautilus-tree-model.c
+++ b/components/tree/nautilus-tree-model.c
@@ -177,7 +177,9 @@ nautilus_tree_model_new (const char *root_uri)
{
NautilusTreeModel *model;
- model = NAUTILUS_TREE_MODEL (gtk_type_new (NAUTILUS_TYPE_TREE_MODEL));
+ model = NAUTILUS_TREE_MODEL (gtk_object_new (NAUTILUS_TYPE_TREE_MODEL, NULL));
+ gtk_object_ref (GTK_OBJECT (model));
+ gtk_object_sink (GTK_OBJECT (model));
nautilus_tree_model_set_root_uri (model, root_uri);
diff --git a/components/tree/nautilus-tree-node.c b/components/tree/nautilus-tree-node.c
index ee3788c3f..273f59af2 100644
--- a/components/tree/nautilus-tree-node.c
+++ b/components/tree/nautilus-tree-node.c
@@ -90,7 +90,9 @@ nautilus_tree_node_new (NautilusFile *file)
{
NautilusTreeNode *node;
- node = NAUTILUS_TREE_NODE (gtk_type_new (NAUTILUS_TYPE_TREE_NODE));
+ node = NAUTILUS_TREE_NODE (gtk_object_new (NAUTILUS_TYPE_TREE_NODE, NULL));
+ gtk_object_ref (GTK_OBJECT (node));
+ gtk_object_sink (GTK_OBJECT (node));
node->details = g_new0 (NautilusTreeNodeDetails, 1);
node->details->file = nautilus_file_ref (file);
diff --git a/components/tree/nautilus-tree-view.c b/components/tree/nautilus-tree-view.c
index 9c872eead..f30efef03 100644
--- a/components/tree/nautilus-tree-view.c
+++ b/components/tree/nautilus-tree-view.c
@@ -359,8 +359,9 @@ insert_hack_node (NautilusTreeView *view, const char *uri)
FALSE,
FALSE);
+ g_assert (g_hash_table_lookup (view->details->uri_to_hack_node_map, uri) == NULL);
g_hash_table_insert (view->details->uri_to_hack_node_map,
- (char *) uri, hack_node);
+ g_strdup (uri), hack_node);
}
}
@@ -368,21 +369,24 @@ insert_hack_node (NautilusTreeView *view, const char *uri)
static void
remove_hack_node (NautilusTreeView *view, const char *uri)
{
+ gpointer key, value;
NautilusCTreeNode *hack_node;
#ifdef DEBUG_TREE
printf ("XXX: removing hack node for %s\n", uri);
#endif
- hack_node = g_hash_table_lookup (view->details->uri_to_hack_node_map, uri);
-
- if (hack_node != NULL) {
- nautilus_ctree_remove_node (NAUTILUS_CTREE (view->details->tree),
- hack_node);
+ if (g_hash_table_lookup_extended (view->details->uri_to_hack_node_map,
+ uri, &key, &value)) {
+ hack_node = value;
+ nautilus_ctree_remove_node (NAUTILUS_CTREE (view->details->tree),
+ hack_node);
g_hash_table_remove (view->details->uri_to_hack_node_map, uri);
+ g_free (key);
gtk_clist_thaw (GTK_CLIST (view->details->tree));
+
#ifdef DEBUG_TREE
printf ("XXX: actually thawing (%d)\n", GTK_CLIST (view->details->tree)->freeze_count);
#endif
@@ -472,7 +476,8 @@ nautilus_tree_view_insert_model_node (NautilusTreeView *view, NautilusTreeNode *
view_node,
node);
- g_hash_table_insert (view->details->uri_to_node_map, uri, view_node);
+ g_assert (g_hash_table_lookup (view->details->uri_to_node_map, uri) == NULL);
+ g_hash_table_insert (view->details->uri_to_node_map, g_strdup (uri), view_node);
if (nautilus_file_is_directory (file)) {
/* Gratuitous hack so node can be expandable w/o
@@ -501,21 +506,22 @@ nautilus_tree_view_insert_model_node (NautilusTreeView *view, NautilusTreeNode *
static void
nautilus_tree_view_remove_model_node (NautilusTreeView *view, NautilusTreeNode *node)
{
- NautilusCTreeNode *view_node;
char *uri;
+ gpointer key, value;
+ NautilusCTreeNode *view_node;
nautilus_tree_model_stop_monitoring_node (view->details->model, node, view);
uri = nautilus_tree_node_get_uri (node);
- view_node = model_node_to_view_node (view, node);
-
- if (view_node != NULL) {
+ if (g_hash_table_lookup_extended (view->details->uri_to_node_map,
+ uri, &key, &value)) {
+ view_node = value;
+
nautilus_ctree_remove_node (NAUTILUS_CTREE (view->details->tree),
- view_node);
-
- /* FIXME bugzilla.eazel.com 2420: free the original key */
- g_hash_table_remove (view->details->uri_to_node_map, uri);
+ view_node);
+ g_hash_table_remove (view->details->uri_to_node_map, uri);
+ g_free (key);
}
nautilus_tree_expansion_state_remove_node (view->details->expansion_state,
diff --git a/cut-n-paste-code/widgets/e-paned/e-hpaned.c b/cut-n-paste-code/widgets/e-paned/e-hpaned.c
index 68fa89321..80745459b 100644
--- a/cut-n-paste-code/widgets/e-paned/e-hpaned.c
+++ b/cut-n-paste-code/widgets/e-paned/e-hpaned.c
@@ -111,11 +111,7 @@ e_hpaned_init (EHPaned *hpaned)
GtkWidget *
e_hpaned_new (void)
{
- EHPaned *hpaned;
-
- hpaned = gtk_type_new (E_TYPE_HPANED);
-
- return GTK_WIDGET (hpaned);
+ return gtk_widget_new (E_TYPE_HPANED, NULL);
}
static void
diff --git a/cut-n-paste-code/widgets/e-paned/e-vpaned.c b/cut-n-paste-code/widgets/e-paned/e-vpaned.c
index 0a093af2d..2b99334b5 100644
--- a/cut-n-paste-code/widgets/e-paned/e-vpaned.c
+++ b/cut-n-paste-code/widgets/e-paned/e-vpaned.c
@@ -111,11 +111,7 @@ e_vpaned_init (EVPaned *vpaned)
GtkWidget *
e_vpaned_new (void)
{
- EVPaned *vpaned;
-
- vpaned = gtk_type_new (E_TYPE_VPANED);
-
- return GTK_WIDGET (vpaned);
+ return gtk_widget_new (E_TYPE_VPANED, NULL);
}
static void
diff --git a/libnautilus-extensions/bonobo-stream-vfs.c b/libnautilus-extensions/bonobo-stream-vfs.c
index ef4b9896c..da7a9794c 100644
--- a/libnautilus-extensions/bonobo-stream-vfs.c
+++ b/libnautilus-extensions/bonobo-stream-vfs.c
@@ -346,7 +346,7 @@ bonobo_stream_create (GnomeVFSHandle *fd)
Bonobo_Stream corba_stream;
CORBA_Environment ev;
- stream_vfs = gtk_type_new (bonobo_stream_vfs_get_type ());
+ stream_vfs = BONOBO_STREAM_VFS (gtk_object_new (bonobo_stream_vfs_get_type (), NULL));
stream_vfs->fd = fd;
diff --git a/libnautilus-extensions/nautilus-any-width-bin.c b/libnautilus-extensions/nautilus-any-width-bin.c
index 6d19cd6be..5b73898e0 100644
--- a/libnautilus-extensions/nautilus-any-width-bin.c
+++ b/libnautilus-extensions/nautilus-any-width-bin.c
@@ -46,14 +46,10 @@ nautilus_any_width_bin_initialize (NautilusAnyWidthBin *bin)
{
}
-GtkWidget*
+GtkWidget *
nautilus_any_width_bin_new (void)
{
- NautilusAnyWidthBin *bin;
-
- bin = gtk_type_new (nautilus_any_width_bin_get_type ());
-
- return GTK_WIDGET (bin);
+ return gtk_widget_new (nautilus_any_width_bin_get_type (), NULL);
}
static void
diff --git a/libnautilus-extensions/nautilus-background.c b/libnautilus-extensions/nautilus-background.c
index b01c19b50..6dc73c83b 100644
--- a/libnautilus-extensions/nautilus-background.c
+++ b/libnautilus-extensions/nautilus-background.c
@@ -235,7 +235,7 @@ nautilus_background_set_image_placement (NautilusBackground *background,
NautilusBackground *
nautilus_background_new (void)
{
- return NAUTILUS_BACKGROUND (gtk_type_new (NAUTILUS_TYPE_BACKGROUND));
+ return NAUTILUS_BACKGROUND (gtk_object_new (NAUTILUS_TYPE_BACKGROUND, NULL));
}
static void
@@ -1079,10 +1079,10 @@ nautilus_get_widget_background (GtkWidget *widget)
/* Store the background in the widget's data. */
background = nautilus_background_new ();
- gtk_object_set_data_full (GTK_OBJECT (widget), "nautilus_background",
- background, (GtkDestroyNotify) gtk_object_unref);
gtk_object_ref (GTK_OBJECT (background));
gtk_object_sink (GTK_OBJECT (background));
+ gtk_object_set_data_full (GTK_OBJECT (widget), "nautilus_background",
+ background, (GtkDestroyNotify) gtk_object_unref);
/* Arrange to get the signal whenever the background changes. */
gtk_signal_connect_object_while_alive (GTK_OBJECT (background),
diff --git a/libnautilus-extensions/nautilus-bookmark.c b/libnautilus-extensions/nautilus-bookmark.c
index a67531bca..e671cfba4 100644
--- a/libnautilus-extensions/nautilus-bookmark.c
+++ b/libnautilus-extensions/nautilus-bookmark.c
@@ -479,7 +479,9 @@ nautilus_bookmark_new_with_icon (const char *uri, const char *name,
{
NautilusBookmark *new_bookmark;
- new_bookmark = gtk_type_new (NAUTILUS_TYPE_BOOKMARK);
+ new_bookmark = NAUTILUS_BOOKMARK (gtk_object_new (NAUTILUS_TYPE_BOOKMARK, NULL));
+ gtk_object_ref (GTK_OBJECT (new_bookmark));
+ gtk_object_sink (GTK_OBJECT (new_bookmark));
new_bookmark->details->name = g_strdup (name);
new_bookmark->details->uri = g_strdup (uri);
diff --git a/libnautilus-extensions/nautilus-caption-table.c b/libnautilus-extensions/nautilus-caption-table.c
index bfe35a0f4..b6341e1cd 100644
--- a/libnautilus-extensions/nautilus-caption-table.c
+++ b/libnautilus-extensions/nautilus-caption-table.c
@@ -306,13 +306,15 @@ entry_activate (GtkWidget *widget, gpointer data)
GtkWidget*
nautilus_caption_table_new (guint num_rows)
{
- GtkWidget *widget = GTK_WIDGET (gtk_type_new (nautilus_caption_table_get_type()));
+ GtkWidget *widget;
- if (num_rows == 0)
+ if (num_rows == 0) {
num_rows = 1;
+ }
- nautilus_caption_table_resize (NAUTILUS_CAPTION_TABLE(widget), num_rows);
+ widget = gtk_widget_new (nautilus_caption_table_get_type(), NULL);
+ nautilus_caption_table_resize (NAUTILUS_CAPTION_TABLE (widget), num_rows);
gtk_table_set_col_spacing (GTK_TABLE (widget), 0, 10);
return widget;
diff --git a/libnautilus-extensions/nautilus-caption.c b/libnautilus-extensions/nautilus-caption.c
index 03bb02c9b..9b2698343 100644
--- a/libnautilus-extensions/nautilus-caption.c
+++ b/libnautilus-extensions/nautilus-caption.c
@@ -140,14 +140,10 @@ update_title (NautilusCaption *caption)
/*
* NautilusCaption public methods
*/
-GtkWidget*
+GtkWidget *
nautilus_caption_new (void)
{
- NautilusCaption *caption;
-
- caption = gtk_type_new (nautilus_caption_get_type ());
-
- return GTK_WIDGET (caption);
+ return gtk_widget_new (nautilus_caption_get_type (), NULL);
}
/**
diff --git a/libnautilus-extensions/nautilus-ctree.c b/libnautilus-extensions/nautilus-ctree.c
index f38774b4e..c7b489da9 100644
--- a/libnautilus-extensions/nautilus-ctree.c
+++ b/libnautilus-extensions/nautilus-ctree.c
@@ -3610,7 +3610,7 @@ nautilus_ctree_new_with_titles (gint columns,
g_return_val_if_fail (columns > 0, NULL);
g_return_val_if_fail (tree_column >= 0 && tree_column < columns, NULL);
- widget = gtk_type_new (NAUTILUS_TYPE_CTREE);
+ widget = GTK_WIDGET (gtk_type_new (NAUTILUS_TYPE_CTREE));
nautilus_ctree_construct (NAUTILUS_CTREE (widget), columns, tree_column, titles);
return widget;
diff --git a/libnautilus-extensions/nautilus-directory.c b/libnautilus-extensions/nautilus-directory.c
index 2d235bf88..bb002c777 100644
--- a/libnautilus-extensions/nautilus-directory.c
+++ b/libnautilus-extensions/nautilus-directory.c
@@ -353,10 +353,12 @@ nautilus_directory_new (const char *uri)
g_assert (uri != NULL);
if (nautilus_uri_is_trash (uri)) {
- directory = NAUTILUS_DIRECTORY (gtk_type_new (NAUTILUS_TYPE_TRASH_DIRECTORY));
+ directory = NAUTILUS_DIRECTORY (gtk_object_new (NAUTILUS_TYPE_TRASH_DIRECTORY, NULL));
} else {
- directory = NAUTILUS_DIRECTORY (gtk_type_new (NAUTILUS_TYPE_VFS_DIRECTORY));
+ directory = NAUTILUS_DIRECTORY (gtk_object_new (NAUTILUS_TYPE_VFS_DIRECTORY, NULL));
}
+ gtk_object_ref (GTK_OBJECT (directory));
+ gtk_object_sink (GTK_OBJECT (directory));
directory->details->uri = g_strdup (uri);
directory->details->private_metafile_vfs_uri = construct_private_metafile_vfs_uri (uri);
diff --git a/libnautilus-extensions/nautilus-druid-page-eazel.c b/libnautilus-extensions/nautilus-druid-page-eazel.c
index 7648bf89e..39fadc869 100644
--- a/libnautilus-extensions/nautilus-druid-page-eazel.c
+++ b/libnautilus-extensions/nautilus-druid-page-eazel.c
@@ -448,7 +448,9 @@ nautilus_druid_page_eazel_size_request(GtkWidget *widget,
GtkWidget *
nautilus_druid_page_eazel_new (NautilusDruidPageEazelPosition position)
{
- NautilusDruidPageEazel *page = gtk_type_new (nautilus_druid_page_eazel_get_type ());
+ NautilusDruidPageEazel *page;
+
+ page = NAUTILUS_DRUID_PAGE_EAZEL (gtk_widget_new (nautilus_druid_page_eazel_get_type (), NULL));
page->position = position;
page->title = g_strdup ("");
@@ -480,7 +482,9 @@ nautilus_druid_page_eazel_new_with_vals (NautilusDruidPageEazelPosition position
GdkPixbuf *sidebar_image,
GdkPixbuf *background_image)
{
- NautilusDruidPageEazel *page = gtk_type_new (nautilus_druid_page_eazel_get_type ());
+ NautilusDruidPageEazel *page;
+
+ page = NAUTILUS_DRUID_PAGE_EAZEL (gtk_widget_new (nautilus_druid_page_eazel_get_type (), NULL));
page->position = position;
page->title = g_strdup (title ? title : "");
diff --git a/libnautilus-extensions/nautilus-druid.c b/libnautilus-extensions/nautilus-druid.c
index f6eb52592..d3a592cc9 100644
--- a/libnautilus-extensions/nautilus-druid.c
+++ b/libnautilus-extensions/nautilus-druid.c
@@ -200,5 +200,5 @@ nautilus_druid_size_allocate (GtkWidget *widget,
GtkWidget *
nautilus_druid_new (void)
{
- return (GtkWidget *)gtk_type_new (NAUTILUS_TYPE_DRUID);
+ return gtk_widget_new (NAUTILUS_TYPE_DRUID, NULL);
}
diff --git a/libnautilus-extensions/nautilus-entry.c b/libnautilus-extensions/nautilus-entry.c
index b9683f455..e833e197c 100644
--- a/libnautilus-extensions/nautilus-entry.c
+++ b/libnautilus-extensions/nautilus-entry.c
@@ -102,10 +102,10 @@ nautilus_entry_initialize (NautilusEntry *entry)
nautilus_undo_set_up_nautilus_entry_for_undo (entry);
}
-GtkWidget*
+GtkWidget *
nautilus_entry_new (void)
{
- return GTK_WIDGET (gtk_type_new (NAUTILUS_TYPE_ENTRY));
+ return gtk_widget_new (NAUTILUS_TYPE_ENTRY, NULL);
}
static void
diff --git a/libnautilus-extensions/nautilus-file-operations-progress.c b/libnautilus-extensions/nautilus-file-operations-progress.c
index 45601d564..7ba7ffb33 100644
--- a/libnautilus-extensions/nautilus-file-operations-progress.c
+++ b/libnautilus-extensions/nautilus-file-operations-progress.c
@@ -274,7 +274,7 @@ nautilus_file_operations_progress_new (const char *title,
GtkWidget *widget;
NautilusFileOperationsProgress *dialog;
- widget = gtk_type_new (nautilus_file_operations_progress_get_type ());
+ widget = gtk_widget_new (nautilus_file_operations_progress_get_type (), NULL);
dialog = NAUTILUS_FILE_OPERATIONS_PROGRESS (widget);
nautilus_file_operations_progress_set_operation_string (dialog, operation_string);
diff --git a/libnautilus-extensions/nautilus-file.c b/libnautilus-extensions/nautilus-file.c
index 267d62ff7..a5502c47c 100644
--- a/libnautilus-extensions/nautilus-file.c
+++ b/libnautilus-extensions/nautilus-file.c
@@ -123,7 +123,9 @@ nautilus_file_new_from_name (NautilusDirectory *directory,
g_return_val_if_fail (name != NULL, NULL);
g_return_val_if_fail (name[0] != '\0', NULL);
- file = gtk_type_new (NAUTILUS_TYPE_FILE);
+ file = NAUTILUS_FILE (gtk_object_new (NAUTILUS_TYPE_FILE, NULL));
+ gtk_object_ref (GTK_OBJECT (file));
+ gtk_object_sink (GTK_OBJECT (file));
nautilus_directory_ref (directory);
@@ -228,7 +230,9 @@ nautilus_file_new_from_info (NautilusDirectory *directory,
g_return_val_if_fail (NAUTILUS_IS_DIRECTORY (directory), NULL);
g_return_val_if_fail (info != NULL, NULL);
- file = gtk_type_new (NAUTILUS_TYPE_FILE);
+ file = NAUTILUS_FILE (gtk_object_new (NAUTILUS_TYPE_FILE, NULL));
+ gtk_object_ref (GTK_OBJECT (file));
+ gtk_object_sink (GTK_OBJECT (file));
nautilus_directory_ref (directory);
file->details->directory = directory;
diff --git a/libnautilus-extensions/nautilus-font-factory.c b/libnautilus-extensions/nautilus-font-factory.c
index 347562d71..136a6171c 100644
--- a/libnautilus-extensions/nautilus-font-factory.c
+++ b/libnautilus-extensions/nautilus-font-factory.c
@@ -23,14 +23,24 @@
*/
#include <config.h>
-
#include "nautilus-font-factory.h"
+
+#include "nautilus-global-preferences.h"
#include "nautilus-gtk-macros.h"
#include "nautilus-string.h"
-#include "nautilus-global-preferences.h"
-
-#include <unistd.h>
#include <pthread.h>
+#include <unistd.h>
+
+#define NAUTILUS_TYPE_FONT_FACTORY \
+ (nautilus_font_factory_get_type ())
+#define NAUTILUS_FONT_FACTORY(obj) \
+ (GTK_CHECK_CAST ((obj), NAUTILUS_TYPE_FONT_FACTORY, NautilusFontFactory))
+#define NAUTILUS_FONT_FACTORY_CLASS(klass) \
+ (GTK_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_FONT_FACTORY, NautilusFontFactoryClass))
+#define NAUTILUS_IS_FONT_FACTORY(obj) \
+ (GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_FONT_FACTORY))
+#define NAUTILUS_IS_FONT_FACTORY_CLASS(klass) \
+ (GTK_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_FONT_FACTORY))
/* The font factory */
typedef struct {
@@ -49,36 +59,33 @@ typedef struct {
GdkFont *font;
} FontHashNode;
-static GtkType nautilus_font_factory_get_type (void);
-static void nautilus_font_factory_initialize_class (NautilusFontFactoryClass *class);
-static void nautilus_font_factory_initialize (NautilusFontFactory *factory);
-static NautilusFontFactory *nautilus_get_current_font_factory (void);
-static NautilusFontFactory *nautilus_font_factory_new (void);
-static char * make_font_name_string (const char *foundry,
- const char *familiy,
- const char *weight,
- const char *slant,
- const char *set_width,
- const char *add_style,
- guint size_in_pixels);
-static FontHashNode * font_hash_node_alloc (const char *name);
-static FontHashNode * font_hash_node_lookup (const char *name);
-static FontHashNode * font_hash_node_lookup_with_insertion (const char *name);
-
-#if 0
-static void font_hash_node_free (FontHashNode *node);
-#endif
-
-NAUTILUS_DEFINE_CLASS_BOILERPLATE (NautilusFontFactory, nautilus_font_factory, GTK_TYPE_OBJECT)
+static GdkFont *fixed_font;
+static NautilusFontFactory *global_font_factory = NULL;
+
+static GtkType nautilus_font_factory_get_type (void);
+static void nautilus_font_factory_initialize_class (NautilusFontFactoryClass *class);
+static void nautilus_font_factory_initialize (NautilusFontFactory *factory);
+static void destroy (GtkObject *object);
+
+NAUTILUS_DEFINE_CLASS_BOILERPLATE (NautilusFontFactory,
+ nautilus_font_factory,
+ GTK_TYPE_OBJECT)
+
+static void
+unref_global_font_factory (void)
+{
+ gtk_object_unref (GTK_OBJECT (global_font_factory));
+}
/* Return a pointer to the single global font factory. */
static NautilusFontFactory *
nautilus_get_current_font_factory (void)
{
- static NautilusFontFactory *global_font_factory = NULL;
-
if (global_font_factory == NULL) {
- global_font_factory = nautilus_font_factory_new ();
+ global_font_factory = NAUTILUS_FONT_FACTORY (gtk_object_new (nautilus_font_factory_get_type (), NULL));
+ gtk_object_ref (GTK_OBJECT (global_font_factory));
+ gtk_object_sink (GTK_OBJECT (global_font_factory));
+ g_atexit (unref_global_font_factory);
}
return global_font_factory;
@@ -90,17 +97,6 @@ nautilus_font_factory_get (void)
return GTK_OBJECT (nautilus_get_current_font_factory ());
}
-/* Create the font factory. */
-static NautilusFontFactory *
-nautilus_font_factory_new (void)
-{
- NautilusFontFactory *factory;
-
- factory = (NautilusFontFactory *) gtk_object_new (nautilus_font_factory_get_type (), NULL);
-
- return factory;
-}
-
static void
nautilus_font_factory_initialize (NautilusFontFactory *factory)
{
@@ -113,79 +109,91 @@ nautilus_font_factory_initialize_class (NautilusFontFactoryClass *class)
GtkObjectClass *object_class;
object_class = GTK_OBJECT_CLASS (class);
+ object_class->destroy = destroy;
}
static FontHashNode *
font_hash_node_alloc (const char *name)
{
- FontHashNode * node;
+ FontHashNode *node;
g_assert (name != NULL);
- node = g_new (FontHashNode, 1);
-
+ node = g_new0 (FontHashNode, 1);
node->name = g_strdup (name);
- node->font = NULL;
-
return node;
}
-#if 0
static void
font_hash_node_free (FontHashNode *node)
{
g_assert (node != NULL);
g_free (node->name);
+ gdk_font_unref (node->font);
g_free (node);
}
-#endif
+
+static void
+free_one_hash_node (gpointer key, gpointer value, gpointer callback_data)
+{
+ FontHashNode *node;
+
+ g_assert (key != NULL);
+ g_assert (value != NULL);
+ g_assert (callback_data == NULL);
+
+ node = value;
+
+ g_assert (node->name == key);
+
+ font_hash_node_free (node);
+}
+
+static void
+destroy (GtkObject *object)
+{
+ NautilusFontFactory *factory;
+
+ factory = NAUTILUS_FONT_FACTORY (object);
+
+ g_hash_table_foreach (factory->fonts, free_one_hash_node, NULL);
+ g_hash_table_destroy (factory->fonts);
+
+ NAUTILUS_CALL_PARENT_CLASS (GTK_OBJECT_CLASS, destroy, (object));
+}
static FontHashNode *
font_hash_node_lookup (const char *name)
{
- static NautilusFontFactory *factory;
-
- gpointer hash_value;
+ NautilusFontFactory *factory;
g_assert (name != NULL);
factory = nautilus_get_current_font_factory ();
- g_assert (factory != NULL);
-
- hash_value = g_hash_table_lookup (factory->fonts, (gconstpointer) name);
-
- return (FontHashNode *) hash_value;
+ return (FontHashNode *) g_hash_table_lookup (factory->fonts, name);
}
static FontHashNode *
font_hash_node_lookup_with_insertion (const char *name)
{
- static NautilusFontFactory *factory;
-
- FontHashNode *node = NULL;
+ NautilusFontFactory *factory;
+ FontHashNode *node;
+ GdkFont *font;
g_assert (name != NULL);
factory = nautilus_get_current_font_factory ();
- g_assert (factory != NULL);
-
-
node = font_hash_node_lookup (name);
if (node == NULL) {
- GdkFont *font;
-
font = gdk_font_load (name);
if (font != NULL) {
node = font_hash_node_alloc (name);
node->font = font;
-
- gdk_font_ref (node->font);
-
g_hash_table_insert (factory->fonts, node->name, node);
}
}
@@ -195,7 +203,7 @@ font_hash_node_lookup_with_insertion (const char *name)
static char *
make_font_name_string (const char *foundry,
- const char *familiy,
+ const char *family,
const char *weight,
const char *slant,
const char *set_width,
@@ -229,7 +237,7 @@ make_font_name_string (const char *foundry,
| | | | | | | | | | | | | +------------- char_set_encoding */
font_name = g_strdup_printf ("-%s-%s-%s-%s-%s-%s-%d-%s-%s-%s-%s-%s-%s-%s",
foundry,
- familiy,
+ family,
weight,
slant,
set_width,
@@ -251,8 +259,8 @@ GdkFont *
nautilus_font_factory_get_font_by_family (const char *family,
guint size_in_pixels)
{
- static NautilusFontFactory *factory;
- GdkFont *font = NULL;
+ NautilusFontFactory *factory;
+ GdkFont *font;
FontHashNode *node;
char *font_name;
@@ -260,8 +268,6 @@ nautilus_font_factory_get_font_by_family (const char *family,
g_return_val_if_fail (size_in_pixels > 0, NULL);
factory = nautilus_get_current_font_factory ();
- g_assert (factory != NULL);
-
font_name = make_font_name_string ("*",
family,
"medium",
@@ -270,18 +276,13 @@ nautilus_font_factory_get_font_by_family (const char *family,
"*",
size_in_pixels);
- g_assert (font_name != NULL);
-
node = font_hash_node_lookup_with_insertion (font_name);
if (node != NULL) {
- g_assert (node->font);
-
+ g_assert (node->font != NULL);
font = node->font;
-
gdk_font_ref (font);
- }
- else {
+ } else {
font = nautilus_font_factory_get_fallback_font ();
}
@@ -305,16 +306,21 @@ nautilus_font_factory_get_font_from_preferences (guint size_in_pixels)
return font;
}
+static void
+unref_fixed_font (void)
+{
+ gdk_font_unref (fixed_font);
+}
+
GdkFont *
nautilus_font_factory_get_fallback_font (void)
{
- static GdkFont *fixed_font;
-
if (fixed_font == NULL) {
fixed_font = gdk_font_load ("fixed");
g_assert (fixed_font != NULL);
- gdk_font_ref (fixed_font);
+ g_atexit (unref_fixed_font);
}
+ gdk_font_ref (fixed_font);
return fixed_font;
}
diff --git a/libnautilus-extensions/nautilus-font-picker.c b/libnautilus-extensions/nautilus-font-picker.c
index 1fbc9f170..e18dc91e2 100644
--- a/libnautilus-extensions/nautilus-font-picker.c
+++ b/libnautilus-extensions/nautilus-font-picker.c
@@ -391,14 +391,10 @@ set_width_picker_changed_callback (GtkWidget *string_picker, gpointer user_data)
/*
* NautilusFontPicker public methods
*/
-GtkWidget*
+GtkWidget *
nautilus_font_picker_new (void)
{
- NautilusFontPicker *font_picker;
-
- font_picker = gtk_type_new (nautilus_font_picker_get_type ());
-
- return GTK_WIDGET (font_picker);
+ return gtk_widget_new (nautilus_font_picker_get_type (), NULL);
}
void
diff --git a/libnautilus-extensions/nautilus-horizontal-splitter.c b/libnautilus-extensions/nautilus-horizontal-splitter.c
index 437b1cb8a..70f1b5198 100644
--- a/libnautilus-extensions/nautilus-horizontal-splitter.c
+++ b/libnautilus-extensions/nautilus-horizontal-splitter.c
@@ -286,7 +286,7 @@ toggle_splitter_position (NautilusHorizontalSplitter *splitter)
GtkWidget *
nautilus_horizontal_splitter_new (void)
{
- return GTK_WIDGET (gtk_type_new (nautilus_horizontal_splitter_get_type ()));
+ return gtk_widget_new (nautilus_horizontal_splitter_get_type (), NULL);
}
/* handle mouse downs by remembering the position and the time */
diff --git a/libnautilus-extensions/nautilus-icon-container.c b/libnautilus-extensions/nautilus-icon-container.c
index 3f13c80b3..a67ad9d69 100644
--- a/libnautilus-extensions/nautilus-icon-container.c
+++ b/libnautilus-extensions/nautilus-icon-container.c
@@ -3113,7 +3113,7 @@ nautilus_icon_container_new (void)
gtk_widget_push_visual (gdk_rgb_get_visual ());
gtk_widget_push_colormap (gdk_rgb_get_cmap ());
- container = gtk_type_new (nautilus_icon_container_get_type ());
+ container = gtk_widget_new (nautilus_icon_container_get_type (), NULL);
gtk_widget_pop_visual ();
gtk_widget_pop_colormap ();
diff --git a/libnautilus-extensions/nautilus-icon-factory.c b/libnautilus-extensions/nautilus-icon-factory.c
index 7840f2e84..1c2fffed0 100644
--- a/libnautilus-extensions/nautilus-icon-factory.c
+++ b/libnautilus-extensions/nautilus-icon-factory.c
@@ -276,6 +276,8 @@ get_icon_factory (void)
if (global_icon_factory == NULL) {
global_icon_factory = NAUTILUS_ICON_FACTORY
(gtk_object_new (nautilus_icon_factory_get_type (), NULL));
+ gtk_object_ref (GTK_OBJECT (global_icon_factory));
+ gtk_object_sink (GTK_OBJECT (global_icon_factory));
/* Update to match the theme. */
icon_theme_changed_callback (NULL);
diff --git a/libnautilus-extensions/nautilus-image.c b/libnautilus-extensions/nautilus-image.c
index 60dd62506..8affda5e7 100644
--- a/libnautilus-extensions/nautilus-image.c
+++ b/libnautilus-extensions/nautilus-image.c
@@ -415,10 +415,10 @@ nautilus_image_paint (NautilusImage *image,
}
/* Public NautilusImage */
-GtkWidget*
+GtkWidget *
nautilus_image_new (void)
{
- return GTK_WIDGET (gtk_type_new (nautilus_image_get_type ()));
+ return gtk_widget_new (nautilus_image_get_type (), NULL);
}
void
diff --git a/libnautilus-extensions/nautilus-keep-last-vertical-box.c b/libnautilus-extensions/nautilus-keep-last-vertical-box.c
index 473c65f5e..7b0fe4aca 100644
--- a/libnautilus-extensions/nautilus-keep-last-vertical-box.c
+++ b/libnautilus-extensions/nautilus-keep-last-vertical-box.c
@@ -70,7 +70,7 @@ nautilus_keep_last_vertical_box_new (gint spacing)
{
NautilusKeepLastVerticalBox *box;
- box = gtk_type_new (nautilus_keep_last_vertical_box_get_type ());
+ box = NAUTILUS_KEEP_LAST_VERTICAL_BOX (gtk_widget_new (nautilus_keep_last_vertical_box_get_type (), NULL));
GTK_BOX (box)->spacing = spacing;
diff --git a/libnautilus-extensions/nautilus-label.c b/libnautilus-extensions/nautilus-label.c
index 5675262da..4dda451ae 100644
--- a/libnautilus-extensions/nautilus-label.c
+++ b/libnautilus-extensions/nautilus-label.c
@@ -452,12 +452,12 @@ label_recompute_line_geometries (NautilusLabel *label)
}
/* Public NautilusLabel */
-GtkWidget*
+GtkWidget *
nautilus_label_new (const char *text)
{
NautilusLabel *label;
- label = NAUTILUS_LABEL (gtk_type_new (nautilus_label_get_type ()));
+ label = NAUTILUS_LABEL (gtk_widget_new (nautilus_label_get_type (), NULL));
nautilus_label_set_text (label, text);
diff --git a/libnautilus-extensions/nautilus-list-column-title.c b/libnautilus-extensions/nautilus-list-column-title.c
index 93262fb4b..d52bdc3eb 100644
--- a/libnautilus-extensions/nautilus-list-column-title.c
+++ b/libnautilus-extensions/nautilus-list-column-title.c
@@ -155,7 +155,8 @@ nautilus_list_column_title_initialize_class (gpointer klass)
NautilusListColumnTitle *
nautilus_list_column_title_new (void)
{
- return gtk_type_new (nautilus_list_column_title_get_type ());
+ return NAUTILUS_LIST_COLUMN_TITLE
+ (gtk_widget_new (nautilus_list_column_title_get_type (), NULL));
}
static void
@@ -234,16 +235,16 @@ nautilus_list_column_title_finalize (GtkObject *object)
if (column_title->details->up_indicator_pixmap != NULL) {
gdk_pixmap_unref (column_title->details->up_indicator_pixmap);
column_title->details->up_indicator_pixmap = NULL;
-
- g_assert (column_title->details->up_indicator_mask != NULL);
+ }
+ if (column_title->details->up_indicator_mask != NULL) {
gdk_bitmap_unref (column_title->details->up_indicator_mask);
column_title->details->up_indicator_mask = NULL;
}
if (column_title->details->down_indicator_pixmap != NULL) {
gdk_pixmap_unref (column_title->details->down_indicator_pixmap);
column_title->details->down_indicator_pixmap = NULL;
-
- g_assert (column_title->details->down_indicator_mask != NULL);
+ }
+ if (column_title->details->down_indicator_mask != NULL) {
gdk_bitmap_unref (column_title->details->down_indicator_mask);
column_title->details->down_indicator_mask = NULL;
}
diff --git a/libnautilus-extensions/nautilus-list.c b/libnautilus-extensions/nautilus-list.c
index d3efda5ae..135e215a5 100644
--- a/libnautilus-extensions/nautilus-list.c
+++ b/libnautilus-extensions/nautilus-list.c
@@ -3150,7 +3150,7 @@ nautilus_list_new_with_titles (int columns, const char * const *titles)
{
NautilusList *list;
- list = gtk_type_new (nautilus_list_get_type ());
+ list = NAUTILUS_LIST (gtk_type_new (nautilus_list_get_type ()));
gtk_clist_construct (GTK_CLIST (list), columns, NULL);
if (titles) {
GtkCList *clist;
diff --git a/libnautilus-extensions/nautilus-password-dialog.c b/libnautilus-extensions/nautilus-password-dialog.c
index c5da58062..cab03648c 100644
--- a/libnautilus-extensions/nautilus-password-dialog.c
+++ b/libnautilus-extensions/nautilus-password-dialog.c
@@ -210,7 +210,7 @@ caption_table_activate_callback (GtkWidget *widget, gint entry, gpointer callbac
}
/* Public NautilusPasswordDialog methods */
-GtkWidget*
+GtkWidget *
nautilus_password_dialog_new (const char *dialog_title,
const char *message,
const char *username,
@@ -219,7 +219,7 @@ nautilus_password_dialog_new (const char *dialog_title,
{
NautilusPasswordDialog *password_dialog;
- password_dialog = gtk_type_new (nautilus_password_dialog_get_type ());
+ password_dialog = NAUTILUS_PASSWORD_DIALOG (gtk_widget_new (nautilus_password_dialog_get_type (), NULL));
gnome_dialog_constructv (GNOME_DIALOG (password_dialog), dialog_title, stock_buttons);
diff --git a/libnautilus-extensions/nautilus-preference.c b/libnautilus-extensions/nautilus-preference.c
index cbbd59481..44197b167 100644
--- a/libnautilus-extensions/nautilus-preference.c
+++ b/libnautilus-extensions/nautilus-preference.c
@@ -302,12 +302,11 @@ nautilus_preference_new_from_type (const char *name,
g_return_val_if_fail (name != NULL, NULL);
- preference = gtk_type_new (nautilus_preference_get_type ());
-
- g_assert (preference != NULL );
+ preference = NAUTILUS_PREFERENCE (gtk_object_new (nautilus_preference_get_type (), NULL));
+ gtk_object_ref (GTK_OBJECT (preference));
+ gtk_object_sink (GTK_OBJECT (preference));
preference->detail->name = g_strdup (name);
-
preference->detail->type = type;
preference_allocate_type_info (preference);
diff --git a/libnautilus-extensions/nautilus-preferences-box.c b/libnautilus-extensions/nautilus-preferences-box.c
index a1053549d..557e7dafd 100644
--- a/libnautilus-extensions/nautilus-preferences-box.c
+++ b/libnautilus-extensions/nautilus-preferences-box.c
@@ -312,7 +312,8 @@ nautilus_preferences_box_new (const gchar *box_title)
{
NautilusPreferencesBox *prefs_box;
- prefs_box = gtk_type_new (nautilus_preferences_box_get_type ());
+ prefs_box = NAUTILUS_PREFERENCES_BOX
+ (gtk_widget_new (nautilus_preferences_box_get_type (), NULL));
prefs_box_construct (prefs_box);
diff --git a/libnautilus-extensions/nautilus-preferences-dialog.c b/libnautilus-extensions/nautilus-preferences-dialog.c
index 48d0dfd27..1a126b778 100644
--- a/libnautilus-extensions/nautilus-preferences-dialog.c
+++ b/libnautilus-extensions/nautilus-preferences-dialog.c
@@ -211,12 +211,13 @@ nautilus_preferences_dialog_construct (NautilusPreferencesDialog *prefs_dialog,
gtk_widget_show (prefs_dialog->details->prefs_box);
}
-GtkWidget*
+GtkWidget *
nautilus_preferences_dialog_new (const gchar *dialog_title)
{
NautilusPreferencesDialog *prefs_dialog;
- prefs_dialog = gtk_type_new (nautilus_preferences_dialog_get_type ());
+ prefs_dialog = NAUTILUS_PREFERENCES_DIALOG
+ (gtk_widget_new (nautilus_preferences_dialog_get_type (), NULL));
nautilus_preferences_dialog_construct (prefs_dialog, dialog_title);
diff --git a/libnautilus-extensions/nautilus-preferences-group.c b/libnautilus-extensions/nautilus-preferences-group.c
index 666c71a15..b96163ec2 100644
--- a/libnautilus-extensions/nautilus-preferences-group.c
+++ b/libnautilus-extensions/nautilus-preferences-group.c
@@ -181,14 +181,15 @@ preferences_group_construct (NautilusPreferencesGroup *group,
/*
* NautilusPreferencesGroup public methods
*/
-GtkWidget*
+GtkWidget *
nautilus_preferences_group_new (const gchar *title)
{
NautilusPreferencesGroup *group;
g_return_val_if_fail (title != NULL, NULL);
- group = gtk_type_new (nautilus_preferences_group_get_type ());
+ group = NAUTILUS_PREFERENCES_GROUP
+ (gtk_widget_new (nautilus_preferences_group_get_type (), NULL));
preferences_group_construct (group, title);
diff --git a/libnautilus-extensions/nautilus-preferences-item.c b/libnautilus-extensions/nautilus-preferences-item.c
index 9cc460497..d8e2311f8 100644
--- a/libnautilus-extensions/nautilus-preferences-item.c
+++ b/libnautilus-extensions/nautilus-preferences-item.c
@@ -627,7 +627,8 @@ nautilus_preferences_item_new (const gchar *preference_name,
g_return_val_if_fail (preference_name != NULL, NULL);
- item = gtk_type_new (nautilus_preferences_item_get_type ());
+ item = NAUTILUS_PREFERENCES_ITEM
+ (gtk_widget_new (nautilus_preferences_item_get_type (), NULL));
/* Cast away the constness so that the preferences object can be
* refed in this object. */
diff --git a/libnautilus-extensions/nautilus-preferences-pane.c b/libnautilus-extensions/nautilus-preferences-pane.c
index 54051fc05..2b5167d92 100644
--- a/libnautilus-extensions/nautilus-preferences-pane.c
+++ b/libnautilus-extensions/nautilus-preferences-pane.c
@@ -214,7 +214,7 @@ prefs_pane_construct (NautilusPreferencesPane *prefs_pane,
/*
* NautilusPreferencesPane public methods
*/
-GtkWidget*
+GtkWidget *
nautilus_preferences_pane_new (const gchar *pane_title,
const gchar *pane_description)
{
@@ -223,7 +223,8 @@ nautilus_preferences_pane_new (const gchar *pane_title,
g_return_val_if_fail (pane_title != NULL, NULL);
g_return_val_if_fail (pane_description != NULL, NULL);
- prefs_pane = gtk_type_new (nautilus_preferences_pane_get_type ());
+ prefs_pane = NAUTILUS_PREFERENCES_PANE
+ (gtk_widget_new (nautilus_preferences_pane_get_type (), NULL));
prefs_pane_construct (prefs_pane, pane_title, pane_description);
diff --git a/libnautilus-extensions/nautilus-radio-button-group.c b/libnautilus-extensions/nautilus-radio-button-group.c
index 25b46f1bc..71db70521 100644
--- a/libnautilus-extensions/nautilus-radio-button-group.c
+++ b/libnautilus-extensions/nautilus-radio-button-group.c
@@ -201,7 +201,8 @@ nautilus_radio_button_group_new (gboolean is_horizontal)
{
NautilusRadioButtonGroup *button_group;
- button_group = gtk_type_new (nautilus_radio_button_group_get_type ());
+ button_group = NAUTILUS_RADIO_BUTTON_GROUP
+ (gtk_widget_new (nautilus_radio_button_group_get_type (), NULL));
button_group->details->horizontal = is_horizontal;
return GTK_WIDGET (button_group);
diff --git a/libnautilus-extensions/nautilus-scalable-font.c b/libnautilus-extensions/nautilus-scalable-font.c
index 10921f19c..5e7bf3d99 100644
--- a/libnautilus-extensions/nautilus-scalable-font.c
+++ b/libnautilus-extensions/nautilus-scalable-font.c
@@ -595,7 +595,9 @@ nautilus_scalable_font_new (const char *family,
__FUNCTION__, family, weight, slant, set_width, font_entry->font_handle);
#endif
- font = NAUTILUS_SCALABLE_FONT (gtk_type_new (nautilus_scalable_font_get_type ()));
+ font = NAUTILUS_SCALABLE_FONT (gtk_object_new (nautilus_scalable_font_get_type (), NULL));
+ gtk_object_ref (GTK_OBJECT (font));
+ gtk_object_sink (GTK_OBJECT (font));
font->detail->font_handle = font_entry->font_handle;
diff --git a/libnautilus-extensions/nautilus-string-picker.c b/libnautilus-extensions/nautilus-string-picker.c
index 1d4ef14ea..ad804f939 100644
--- a/libnautilus-extensions/nautilus-string-picker.c
+++ b/libnautilus-extensions/nautilus-string-picker.c
@@ -155,14 +155,10 @@ option_menu_activate_callback (GtkWidget *menu_item, gpointer callback_data)
/*
* NautilusStringPicker public methods
*/
-GtkWidget*
+GtkWidget *
nautilus_string_picker_new (void)
{
- NautilusStringPicker *string_picker;
-
- string_picker = gtk_type_new (nautilus_string_picker_get_type ());
-
- return GTK_WIDGET (string_picker);
+ return gtk_widget_new (nautilus_string_picker_get_type (), NULL);
}
/**
diff --git a/libnautilus-extensions/nautilus-text-caption.c b/libnautilus-extensions/nautilus-text-caption.c
index 683e6eb4c..8e4e853f0 100644
--- a/libnautilus-extensions/nautilus-text-caption.c
+++ b/libnautilus-extensions/nautilus-text-caption.c
@@ -152,14 +152,10 @@ entry_changed_callback (GtkWidget *entry, gpointer user_data)
/*
* NautilusTextCaption public methods
*/
-GtkWidget*
+GtkWidget *
nautilus_text_caption_new (void)
{
- NautilusTextCaption *text_caption;
-
- text_caption = gtk_type_new (nautilus_text_caption_get_type ());
-
- return GTK_WIDGET (text_caption);
+ return gtk_widget_new (nautilus_text_caption_get_type (), NULL);
}
/**
diff --git a/libnautilus-extensions/nautilus-theme.c b/libnautilus-extensions/nautilus-theme.c
index 00941f5c8..068cfb001 100644
--- a/libnautilus-extensions/nautilus-theme.c
+++ b/libnautilus-extensions/nautilus-theme.c
@@ -53,18 +53,18 @@ static xmlDocPtr default_theme_document = NULL;
/* return the current theme by asking the preferences machinery */
char *
-nautilus_theme_get_theme(void)
+nautilus_theme_get_theme (void)
{
return nautilus_preferences_get (NAUTILUS_PREFERENCES_THEME, "default");
}
/* set the current theme */
void
-nautilus_theme_set_theme(const char *new_theme)
+nautilus_theme_set_theme (const char *new_theme)
{
char *old_theme;
- old_theme = nautilus_theme_get_theme();
+ old_theme = nautilus_theme_get_theme ();
if (nautilus_strcmp (old_theme, new_theme)) {
nautilus_preferences_set (NAUTILUS_PREFERENCES_THEME, new_theme);
}
@@ -157,7 +157,7 @@ nautilus_theme_get_theme_data (const char *resource_name, const char *property_n
if (theme_document != NULL) {
/* fetch the resource node */
- resource_node = nautilus_xml_get_child_by_name(xmlDocGetRootElement (theme_document), resource_name);
+ resource_node = nautilus_xml_get_child_by_name (xmlDocGetRootElement (theme_document), resource_name);
if (resource_node) {
temp_str = xmlGetProp(resource_node, property_name);
if (temp_str) {
diff --git a/libnautilus-extensions/nautilus-undo-context.c b/libnautilus-extensions/nautilus-undo-context.c
index f64639e59..cc94a9f02 100644
--- a/libnautilus-extensions/nautilus-undo-context.c
+++ b/libnautilus-extensions/nautilus-undo-context.c
@@ -118,11 +118,14 @@ nautilus_undo_context_new (Nautilus_Undo_Manager undo_manager)
CORBA_exception_init (&ev);
- context = gtk_type_new (nautilus_undo_context_get_type ());
+ context = NAUTILUS_UNDO_CONTEXT (gtk_object_new (nautilus_undo_context_get_type (), NULL));
context->undo_manager = CORBA_Object_duplicate (undo_manager, &ev);
CORBA_exception_free (&ev);
+ gtk_object_ref (GTK_OBJECT (context));
+ gtk_object_sink (GTK_OBJECT (context));
+
return context;
}
diff --git a/libnautilus-extensions/nautilus-undo-manager.c b/libnautilus-extensions/nautilus-undo-manager.c
index b684978df..41a41aacd 100644
--- a/libnautilus-extensions/nautilus-undo-manager.c
+++ b/libnautilus-extensions/nautilus-undo-manager.c
@@ -230,7 +230,13 @@ corba_undo (PortableServer_Servant servant,
NautilusUndoManager *
nautilus_undo_manager_new (void)
{
- return gtk_type_new (nautilus_undo_manager_get_type ());
+ NautilusUndoManager *manager;
+
+ manager = NAUTILUS_UNDO_MANAGER (gtk_object_new (nautilus_undo_manager_get_type (), NULL));
+ gtk_object_ref (GTK_OBJECT (manager));
+ gtk_object_sink (GTK_OBJECT (manager));
+
+ return manager;
}
static void
diff --git a/libnautilus-extensions/nautilus-user-level-manager.c b/libnautilus-extensions/nautilus-user-level-manager.c
index 618bd9709..c8eaed62b 100644
--- a/libnautilus-extensions/nautilus-user-level-manager.c
+++ b/libnautilus-extensions/nautilus-user-level-manager.c
@@ -136,6 +136,8 @@ user_level_manager_new (void)
}
manager = NAUTILUS_USER_LEVEL_MANAGER (gtk_object_new (nautilus_user_level_manager_get_type (), NULL));
+ gtk_object_ref (GTK_OBJECT (manager));
+ gtk_object_sink (GTK_OBJECT (manager));
manager->gconf_client = gconf_client_get_default ();
diff --git a/libnautilus-extensions/nautilus-volume-monitor.c b/libnautilus-extensions/nautilus-volume-monitor.c
index 55eba260c..9592c9bce 100644
--- a/libnautilus-extensions/nautilus-volume-monitor.c
+++ b/libnautilus-extensions/nautilus-volume-monitor.c
@@ -190,6 +190,12 @@ nautilus_volume_monitor_destroy (GtkObject *object)
NAUTILUS_CALL_PARENT_CLASS (GTK_OBJECT_CLASS, destroy, (object));
}
+static void
+unref_global_volume_monitor (void)
+{
+ gtk_object_unref (GTK_OBJECT (global_volume_monitor));
+}
+
/* Return the global instance of the NautilusVolumeMonitor. Create one
* if we have not done so already
*/
@@ -200,6 +206,9 @@ nautilus_volume_monitor_get (void)
global_volume_monitor = NAUTILUS_VOLUME_MONITOR
(gtk_object_new (nautilus_volume_monitor_get_type(),
NULL));
+ gtk_object_ref (GTK_OBJECT (global_volume_monitor));
+ gtk_object_sink (GTK_OBJECT (global_volume_monitor));
+ g_atexit (unref_global_volume_monitor);
}
return global_volume_monitor;
diff --git a/libnautilus-private/bonobo-stream-vfs.c b/libnautilus-private/bonobo-stream-vfs.c
index ef4b9896c..da7a9794c 100644
--- a/libnautilus-private/bonobo-stream-vfs.c
+++ b/libnautilus-private/bonobo-stream-vfs.c
@@ -346,7 +346,7 @@ bonobo_stream_create (GnomeVFSHandle *fd)
Bonobo_Stream corba_stream;
CORBA_Environment ev;
- stream_vfs = gtk_type_new (bonobo_stream_vfs_get_type ());
+ stream_vfs = BONOBO_STREAM_VFS (gtk_object_new (bonobo_stream_vfs_get_type (), NULL));
stream_vfs->fd = fd;
diff --git a/libnautilus-private/nautilus-any-width-bin.c b/libnautilus-private/nautilus-any-width-bin.c
index 6d19cd6be..5b73898e0 100644
--- a/libnautilus-private/nautilus-any-width-bin.c
+++ b/libnautilus-private/nautilus-any-width-bin.c
@@ -46,14 +46,10 @@ nautilus_any_width_bin_initialize (NautilusAnyWidthBin *bin)
{
}
-GtkWidget*
+GtkWidget *
nautilus_any_width_bin_new (void)
{
- NautilusAnyWidthBin *bin;
-
- bin = gtk_type_new (nautilus_any_width_bin_get_type ());
-
- return GTK_WIDGET (bin);
+ return gtk_widget_new (nautilus_any_width_bin_get_type (), NULL);
}
static void
diff --git a/libnautilus-private/nautilus-background.c b/libnautilus-private/nautilus-background.c
index b01c19b50..6dc73c83b 100644
--- a/libnautilus-private/nautilus-background.c
+++ b/libnautilus-private/nautilus-background.c
@@ -235,7 +235,7 @@ nautilus_background_set_image_placement (NautilusBackground *background,
NautilusBackground *
nautilus_background_new (void)
{
- return NAUTILUS_BACKGROUND (gtk_type_new (NAUTILUS_TYPE_BACKGROUND));
+ return NAUTILUS_BACKGROUND (gtk_object_new (NAUTILUS_TYPE_BACKGROUND, NULL));
}
static void
@@ -1079,10 +1079,10 @@ nautilus_get_widget_background (GtkWidget *widget)
/* Store the background in the widget's data. */
background = nautilus_background_new ();
- gtk_object_set_data_full (GTK_OBJECT (widget), "nautilus_background",
- background, (GtkDestroyNotify) gtk_object_unref);
gtk_object_ref (GTK_OBJECT (background));
gtk_object_sink (GTK_OBJECT (background));
+ gtk_object_set_data_full (GTK_OBJECT (widget), "nautilus_background",
+ background, (GtkDestroyNotify) gtk_object_unref);
/* Arrange to get the signal whenever the background changes. */
gtk_signal_connect_object_while_alive (GTK_OBJECT (background),
diff --git a/libnautilus-private/nautilus-bookmark.c b/libnautilus-private/nautilus-bookmark.c
index a67531bca..e671cfba4 100644
--- a/libnautilus-private/nautilus-bookmark.c
+++ b/libnautilus-private/nautilus-bookmark.c
@@ -479,7 +479,9 @@ nautilus_bookmark_new_with_icon (const char *uri, const char *name,
{
NautilusBookmark *new_bookmark;
- new_bookmark = gtk_type_new (NAUTILUS_TYPE_BOOKMARK);
+ new_bookmark = NAUTILUS_BOOKMARK (gtk_object_new (NAUTILUS_TYPE_BOOKMARK, NULL));
+ gtk_object_ref (GTK_OBJECT (new_bookmark));
+ gtk_object_sink (GTK_OBJECT (new_bookmark));
new_bookmark->details->name = g_strdup (name);
new_bookmark->details->uri = g_strdup (uri);
diff --git a/libnautilus-private/nautilus-caption-table.c b/libnautilus-private/nautilus-caption-table.c
index bfe35a0f4..b6341e1cd 100644
--- a/libnautilus-private/nautilus-caption-table.c
+++ b/libnautilus-private/nautilus-caption-table.c
@@ -306,13 +306,15 @@ entry_activate (GtkWidget *widget, gpointer data)
GtkWidget*
nautilus_caption_table_new (guint num_rows)
{
- GtkWidget *widget = GTK_WIDGET (gtk_type_new (nautilus_caption_table_get_type()));
+ GtkWidget *widget;
- if (num_rows == 0)
+ if (num_rows == 0) {
num_rows = 1;
+ }
- nautilus_caption_table_resize (NAUTILUS_CAPTION_TABLE(widget), num_rows);
+ widget = gtk_widget_new (nautilus_caption_table_get_type(), NULL);
+ nautilus_caption_table_resize (NAUTILUS_CAPTION_TABLE (widget), num_rows);
gtk_table_set_col_spacing (GTK_TABLE (widget), 0, 10);
return widget;
diff --git a/libnautilus-private/nautilus-caption.c b/libnautilus-private/nautilus-caption.c
index 03bb02c9b..9b2698343 100644
--- a/libnautilus-private/nautilus-caption.c
+++ b/libnautilus-private/nautilus-caption.c
@@ -140,14 +140,10 @@ update_title (NautilusCaption *caption)
/*
* NautilusCaption public methods
*/
-GtkWidget*
+GtkWidget *
nautilus_caption_new (void)
{
- NautilusCaption *caption;
-
- caption = gtk_type_new (nautilus_caption_get_type ());
-
- return GTK_WIDGET (caption);
+ return gtk_widget_new (nautilus_caption_get_type (), NULL);
}
/**
diff --git a/libnautilus-private/nautilus-ctree.c b/libnautilus-private/nautilus-ctree.c
index f38774b4e..c7b489da9 100644
--- a/libnautilus-private/nautilus-ctree.c
+++ b/libnautilus-private/nautilus-ctree.c
@@ -3610,7 +3610,7 @@ nautilus_ctree_new_with_titles (gint columns,
g_return_val_if_fail (columns > 0, NULL);
g_return_val_if_fail (tree_column >= 0 && tree_column < columns, NULL);
- widget = gtk_type_new (NAUTILUS_TYPE_CTREE);
+ widget = GTK_WIDGET (gtk_type_new (NAUTILUS_TYPE_CTREE));
nautilus_ctree_construct (NAUTILUS_CTREE (widget), columns, tree_column, titles);
return widget;
diff --git a/libnautilus-private/nautilus-directory.c b/libnautilus-private/nautilus-directory.c
index 2d235bf88..bb002c777 100644
--- a/libnautilus-private/nautilus-directory.c
+++ b/libnautilus-private/nautilus-directory.c
@@ -353,10 +353,12 @@ nautilus_directory_new (const char *uri)
g_assert (uri != NULL);
if (nautilus_uri_is_trash (uri)) {
- directory = NAUTILUS_DIRECTORY (gtk_type_new (NAUTILUS_TYPE_TRASH_DIRECTORY));
+ directory = NAUTILUS_DIRECTORY (gtk_object_new (NAUTILUS_TYPE_TRASH_DIRECTORY, NULL));
} else {
- directory = NAUTILUS_DIRECTORY (gtk_type_new (NAUTILUS_TYPE_VFS_DIRECTORY));
+ directory = NAUTILUS_DIRECTORY (gtk_object_new (NAUTILUS_TYPE_VFS_DIRECTORY, NULL));
}
+ gtk_object_ref (GTK_OBJECT (directory));
+ gtk_object_sink (GTK_OBJECT (directory));
directory->details->uri = g_strdup (uri);
directory->details->private_metafile_vfs_uri = construct_private_metafile_vfs_uri (uri);
diff --git a/libnautilus-private/nautilus-druid-page-eazel.c b/libnautilus-private/nautilus-druid-page-eazel.c
index 7648bf89e..39fadc869 100644
--- a/libnautilus-private/nautilus-druid-page-eazel.c
+++ b/libnautilus-private/nautilus-druid-page-eazel.c
@@ -448,7 +448,9 @@ nautilus_druid_page_eazel_size_request(GtkWidget *widget,
GtkWidget *
nautilus_druid_page_eazel_new (NautilusDruidPageEazelPosition position)
{
- NautilusDruidPageEazel *page = gtk_type_new (nautilus_druid_page_eazel_get_type ());
+ NautilusDruidPageEazel *page;
+
+ page = NAUTILUS_DRUID_PAGE_EAZEL (gtk_widget_new (nautilus_druid_page_eazel_get_type (), NULL));
page->position = position;
page->title = g_strdup ("");
@@ -480,7 +482,9 @@ nautilus_druid_page_eazel_new_with_vals (NautilusDruidPageEazelPosition position
GdkPixbuf *sidebar_image,
GdkPixbuf *background_image)
{
- NautilusDruidPageEazel *page = gtk_type_new (nautilus_druid_page_eazel_get_type ());
+ NautilusDruidPageEazel *page;
+
+ page = NAUTILUS_DRUID_PAGE_EAZEL (gtk_widget_new (nautilus_druid_page_eazel_get_type (), NULL));
page->position = position;
page->title = g_strdup (title ? title : "");
diff --git a/libnautilus-private/nautilus-druid.c b/libnautilus-private/nautilus-druid.c
index f6eb52592..d3a592cc9 100644
--- a/libnautilus-private/nautilus-druid.c
+++ b/libnautilus-private/nautilus-druid.c
@@ -200,5 +200,5 @@ nautilus_druid_size_allocate (GtkWidget *widget,
GtkWidget *
nautilus_druid_new (void)
{
- return (GtkWidget *)gtk_type_new (NAUTILUS_TYPE_DRUID);
+ return gtk_widget_new (NAUTILUS_TYPE_DRUID, NULL);
}
diff --git a/libnautilus-private/nautilus-entry.c b/libnautilus-private/nautilus-entry.c
index b9683f455..e833e197c 100644
--- a/libnautilus-private/nautilus-entry.c
+++ b/libnautilus-private/nautilus-entry.c
@@ -102,10 +102,10 @@ nautilus_entry_initialize (NautilusEntry *entry)
nautilus_undo_set_up_nautilus_entry_for_undo (entry);
}
-GtkWidget*
+GtkWidget *
nautilus_entry_new (void)
{
- return GTK_WIDGET (gtk_type_new (NAUTILUS_TYPE_ENTRY));
+ return gtk_widget_new (NAUTILUS_TYPE_ENTRY, NULL);
}
static void
diff --git a/libnautilus-private/nautilus-file-operations-progress.c b/libnautilus-private/nautilus-file-operations-progress.c
index 45601d564..7ba7ffb33 100644
--- a/libnautilus-private/nautilus-file-operations-progress.c
+++ b/libnautilus-private/nautilus-file-operations-progress.c
@@ -274,7 +274,7 @@ nautilus_file_operations_progress_new (const char *title,
GtkWidget *widget;
NautilusFileOperationsProgress *dialog;
- widget = gtk_type_new (nautilus_file_operations_progress_get_type ());
+ widget = gtk_widget_new (nautilus_file_operations_progress_get_type (), NULL);
dialog = NAUTILUS_FILE_OPERATIONS_PROGRESS (widget);
nautilus_file_operations_progress_set_operation_string (dialog, operation_string);
diff --git a/libnautilus-private/nautilus-file.c b/libnautilus-private/nautilus-file.c
index 267d62ff7..a5502c47c 100644
--- a/libnautilus-private/nautilus-file.c
+++ b/libnautilus-private/nautilus-file.c
@@ -123,7 +123,9 @@ nautilus_file_new_from_name (NautilusDirectory *directory,
g_return_val_if_fail (name != NULL, NULL);
g_return_val_if_fail (name[0] != '\0', NULL);
- file = gtk_type_new (NAUTILUS_TYPE_FILE);
+ file = NAUTILUS_FILE (gtk_object_new (NAUTILUS_TYPE_FILE, NULL));
+ gtk_object_ref (GTK_OBJECT (file));
+ gtk_object_sink (GTK_OBJECT (file));
nautilus_directory_ref (directory);
@@ -228,7 +230,9 @@ nautilus_file_new_from_info (NautilusDirectory *directory,
g_return_val_if_fail (NAUTILUS_IS_DIRECTORY (directory), NULL);
g_return_val_if_fail (info != NULL, NULL);
- file = gtk_type_new (NAUTILUS_TYPE_FILE);
+ file = NAUTILUS_FILE (gtk_object_new (NAUTILUS_TYPE_FILE, NULL));
+ gtk_object_ref (GTK_OBJECT (file));
+ gtk_object_sink (GTK_OBJECT (file));
nautilus_directory_ref (directory);
file->details->directory = directory;
diff --git a/libnautilus-private/nautilus-font-factory.c b/libnautilus-private/nautilus-font-factory.c
index 347562d71..136a6171c 100644
--- a/libnautilus-private/nautilus-font-factory.c
+++ b/libnautilus-private/nautilus-font-factory.c
@@ -23,14 +23,24 @@
*/
#include <config.h>
-
#include "nautilus-font-factory.h"
+
+#include "nautilus-global-preferences.h"
#include "nautilus-gtk-macros.h"
#include "nautilus-string.h"
-#include "nautilus-global-preferences.h"
-
-#include <unistd.h>
#include <pthread.h>
+#include <unistd.h>
+
+#define NAUTILUS_TYPE_FONT_FACTORY \
+ (nautilus_font_factory_get_type ())
+#define NAUTILUS_FONT_FACTORY(obj) \
+ (GTK_CHECK_CAST ((obj), NAUTILUS_TYPE_FONT_FACTORY, NautilusFontFactory))
+#define NAUTILUS_FONT_FACTORY_CLASS(klass) \
+ (GTK_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_FONT_FACTORY, NautilusFontFactoryClass))
+#define NAUTILUS_IS_FONT_FACTORY(obj) \
+ (GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_FONT_FACTORY))
+#define NAUTILUS_IS_FONT_FACTORY_CLASS(klass) \
+ (GTK_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_FONT_FACTORY))
/* The font factory */
typedef struct {
@@ -49,36 +59,33 @@ typedef struct {
GdkFont *font;
} FontHashNode;
-static GtkType nautilus_font_factory_get_type (void);
-static void nautilus_font_factory_initialize_class (NautilusFontFactoryClass *class);
-static void nautilus_font_factory_initialize (NautilusFontFactory *factory);
-static NautilusFontFactory *nautilus_get_current_font_factory (void);
-static NautilusFontFactory *nautilus_font_factory_new (void);
-static char * make_font_name_string (const char *foundry,
- const char *familiy,
- const char *weight,
- const char *slant,
- const char *set_width,
- const char *add_style,
- guint size_in_pixels);
-static FontHashNode * font_hash_node_alloc (const char *name);
-static FontHashNode * font_hash_node_lookup (const char *name);
-static FontHashNode * font_hash_node_lookup_with_insertion (const char *name);
-
-#if 0
-static void font_hash_node_free (FontHashNode *node);
-#endif
-
-NAUTILUS_DEFINE_CLASS_BOILERPLATE (NautilusFontFactory, nautilus_font_factory, GTK_TYPE_OBJECT)
+static GdkFont *fixed_font;
+static NautilusFontFactory *global_font_factory = NULL;
+
+static GtkType nautilus_font_factory_get_type (void);
+static void nautilus_font_factory_initialize_class (NautilusFontFactoryClass *class);
+static void nautilus_font_factory_initialize (NautilusFontFactory *factory);
+static void destroy (GtkObject *object);
+
+NAUTILUS_DEFINE_CLASS_BOILERPLATE (NautilusFontFactory,
+ nautilus_font_factory,
+ GTK_TYPE_OBJECT)
+
+static void
+unref_global_font_factory (void)
+{
+ gtk_object_unref (GTK_OBJECT (global_font_factory));
+}
/* Return a pointer to the single global font factory. */
static NautilusFontFactory *
nautilus_get_current_font_factory (void)
{
- static NautilusFontFactory *global_font_factory = NULL;
-
if (global_font_factory == NULL) {
- global_font_factory = nautilus_font_factory_new ();
+ global_font_factory = NAUTILUS_FONT_FACTORY (gtk_object_new (nautilus_font_factory_get_type (), NULL));
+ gtk_object_ref (GTK_OBJECT (global_font_factory));
+ gtk_object_sink (GTK_OBJECT (global_font_factory));
+ g_atexit (unref_global_font_factory);
}
return global_font_factory;
@@ -90,17 +97,6 @@ nautilus_font_factory_get (void)
return GTK_OBJECT (nautilus_get_current_font_factory ());
}
-/* Create the font factory. */
-static NautilusFontFactory *
-nautilus_font_factory_new (void)
-{
- NautilusFontFactory *factory;
-
- factory = (NautilusFontFactory *) gtk_object_new (nautilus_font_factory_get_type (), NULL);
-
- return factory;
-}
-
static void
nautilus_font_factory_initialize (NautilusFontFactory *factory)
{
@@ -113,79 +109,91 @@ nautilus_font_factory_initialize_class (NautilusFontFactoryClass *class)
GtkObjectClass *object_class;
object_class = GTK_OBJECT_CLASS (class);
+ object_class->destroy = destroy;
}
static FontHashNode *
font_hash_node_alloc (const char *name)
{
- FontHashNode * node;
+ FontHashNode *node;
g_assert (name != NULL);
- node = g_new (FontHashNode, 1);
-
+ node = g_new0 (FontHashNode, 1);
node->name = g_strdup (name);
- node->font = NULL;
-
return node;
}
-#if 0
static void
font_hash_node_free (FontHashNode *node)
{
g_assert (node != NULL);
g_free (node->name);
+ gdk_font_unref (node->font);
g_free (node);
}
-#endif
+
+static void
+free_one_hash_node (gpointer key, gpointer value, gpointer callback_data)
+{
+ FontHashNode *node;
+
+ g_assert (key != NULL);
+ g_assert (value != NULL);
+ g_assert (callback_data == NULL);
+
+ node = value;
+
+ g_assert (node->name == key);
+
+ font_hash_node_free (node);
+}
+
+static void
+destroy (GtkObject *object)
+{
+ NautilusFontFactory *factory;
+
+ factory = NAUTILUS_FONT_FACTORY (object);
+
+ g_hash_table_foreach (factory->fonts, free_one_hash_node, NULL);
+ g_hash_table_destroy (factory->fonts);
+
+ NAUTILUS_CALL_PARENT_CLASS (GTK_OBJECT_CLASS, destroy, (object));
+}
static FontHashNode *
font_hash_node_lookup (const char *name)
{
- static NautilusFontFactory *factory;
-
- gpointer hash_value;
+ NautilusFontFactory *factory;
g_assert (name != NULL);
factory = nautilus_get_current_font_factory ();
- g_assert (factory != NULL);
-
- hash_value = g_hash_table_lookup (factory->fonts, (gconstpointer) name);
-
- return (FontHashNode *) hash_value;
+ return (FontHashNode *) g_hash_table_lookup (factory->fonts, name);
}
static FontHashNode *
font_hash_node_lookup_with_insertion (const char *name)
{
- static NautilusFontFactory *factory;
-
- FontHashNode *node = NULL;
+ NautilusFontFactory *factory;
+ FontHashNode *node;
+ GdkFont *font;
g_assert (name != NULL);
factory = nautilus_get_current_font_factory ();
- g_assert (factory != NULL);
-
-
node = font_hash_node_lookup (name);
if (node == NULL) {
- GdkFont *font;
-
font = gdk_font_load (name);
if (font != NULL) {
node = font_hash_node_alloc (name);
node->font = font;
-
- gdk_font_ref (node->font);
-
g_hash_table_insert (factory->fonts, node->name, node);
}
}
@@ -195,7 +203,7 @@ font_hash_node_lookup_with_insertion (const char *name)
static char *
make_font_name_string (const char *foundry,
- const char *familiy,
+ const char *family,
const char *weight,
const char *slant,
const char *set_width,
@@ -229,7 +237,7 @@ make_font_name_string (const char *foundry,
| | | | | | | | | | | | | +------------- char_set_encoding */
font_name = g_strdup_printf ("-%s-%s-%s-%s-%s-%s-%d-%s-%s-%s-%s-%s-%s-%s",
foundry,
- familiy,
+ family,
weight,
slant,
set_width,
@@ -251,8 +259,8 @@ GdkFont *
nautilus_font_factory_get_font_by_family (const char *family,
guint size_in_pixels)
{
- static NautilusFontFactory *factory;
- GdkFont *font = NULL;
+ NautilusFontFactory *factory;
+ GdkFont *font;
FontHashNode *node;
char *font_name;
@@ -260,8 +268,6 @@ nautilus_font_factory_get_font_by_family (const char *family,
g_return_val_if_fail (size_in_pixels > 0, NULL);
factory = nautilus_get_current_font_factory ();
- g_assert (factory != NULL);
-
font_name = make_font_name_string ("*",
family,
"medium",
@@ -270,18 +276,13 @@ nautilus_font_factory_get_font_by_family (const char *family,
"*",
size_in_pixels);
- g_assert (font_name != NULL);
-
node = font_hash_node_lookup_with_insertion (font_name);
if (node != NULL) {
- g_assert (node->font);
-
+ g_assert (node->font != NULL);
font = node->font;
-
gdk_font_ref (font);
- }
- else {
+ } else {
font = nautilus_font_factory_get_fallback_font ();
}
@@ -305,16 +306,21 @@ nautilus_font_factory_get_font_from_preferences (guint size_in_pixels)
return font;
}
+static void
+unref_fixed_font (void)
+{
+ gdk_font_unref (fixed_font);
+}
+
GdkFont *
nautilus_font_factory_get_fallback_font (void)
{
- static GdkFont *fixed_font;
-
if (fixed_font == NULL) {
fixed_font = gdk_font_load ("fixed");
g_assert (fixed_font != NULL);
- gdk_font_ref (fixed_font);
+ g_atexit (unref_fixed_font);
}
+ gdk_font_ref (fixed_font);
return fixed_font;
}
diff --git a/libnautilus-private/nautilus-font-picker.c b/libnautilus-private/nautilus-font-picker.c
index 1fbc9f170..e18dc91e2 100644
--- a/libnautilus-private/nautilus-font-picker.c
+++ b/libnautilus-private/nautilus-font-picker.c
@@ -391,14 +391,10 @@ set_width_picker_changed_callback (GtkWidget *string_picker, gpointer user_data)
/*
* NautilusFontPicker public methods
*/
-GtkWidget*
+GtkWidget *
nautilus_font_picker_new (void)
{
- NautilusFontPicker *font_picker;
-
- font_picker = gtk_type_new (nautilus_font_picker_get_type ());
-
- return GTK_WIDGET (font_picker);
+ return gtk_widget_new (nautilus_font_picker_get_type (), NULL);
}
void
diff --git a/libnautilus-private/nautilus-horizontal-splitter.c b/libnautilus-private/nautilus-horizontal-splitter.c
index 437b1cb8a..70f1b5198 100644
--- a/libnautilus-private/nautilus-horizontal-splitter.c
+++ b/libnautilus-private/nautilus-horizontal-splitter.c
@@ -286,7 +286,7 @@ toggle_splitter_position (NautilusHorizontalSplitter *splitter)
GtkWidget *
nautilus_horizontal_splitter_new (void)
{
- return GTK_WIDGET (gtk_type_new (nautilus_horizontal_splitter_get_type ()));
+ return gtk_widget_new (nautilus_horizontal_splitter_get_type (), NULL);
}
/* handle mouse downs by remembering the position and the time */
diff --git a/libnautilus-private/nautilus-icon-container.c b/libnautilus-private/nautilus-icon-container.c
index 3f13c80b3..a67ad9d69 100644
--- a/libnautilus-private/nautilus-icon-container.c
+++ b/libnautilus-private/nautilus-icon-container.c
@@ -3113,7 +3113,7 @@ nautilus_icon_container_new (void)
gtk_widget_push_visual (gdk_rgb_get_visual ());
gtk_widget_push_colormap (gdk_rgb_get_cmap ());
- container = gtk_type_new (nautilus_icon_container_get_type ());
+ container = gtk_widget_new (nautilus_icon_container_get_type (), NULL);
gtk_widget_pop_visual ();
gtk_widget_pop_colormap ();
diff --git a/libnautilus-private/nautilus-icon-factory.c b/libnautilus-private/nautilus-icon-factory.c
index 7840f2e84..1c2fffed0 100644
--- a/libnautilus-private/nautilus-icon-factory.c
+++ b/libnautilus-private/nautilus-icon-factory.c
@@ -276,6 +276,8 @@ get_icon_factory (void)
if (global_icon_factory == NULL) {
global_icon_factory = NAUTILUS_ICON_FACTORY
(gtk_object_new (nautilus_icon_factory_get_type (), NULL));
+ gtk_object_ref (GTK_OBJECT (global_icon_factory));
+ gtk_object_sink (GTK_OBJECT (global_icon_factory));
/* Update to match the theme. */
icon_theme_changed_callback (NULL);
diff --git a/libnautilus-private/nautilus-image.c b/libnautilus-private/nautilus-image.c
index 60dd62506..8affda5e7 100644
--- a/libnautilus-private/nautilus-image.c
+++ b/libnautilus-private/nautilus-image.c
@@ -415,10 +415,10 @@ nautilus_image_paint (NautilusImage *image,
}
/* Public NautilusImage */
-GtkWidget*
+GtkWidget *
nautilus_image_new (void)
{
- return GTK_WIDGET (gtk_type_new (nautilus_image_get_type ()));
+ return gtk_widget_new (nautilus_image_get_type (), NULL);
}
void
diff --git a/libnautilus-private/nautilus-keep-last-vertical-box.c b/libnautilus-private/nautilus-keep-last-vertical-box.c
index 473c65f5e..7b0fe4aca 100644
--- a/libnautilus-private/nautilus-keep-last-vertical-box.c
+++ b/libnautilus-private/nautilus-keep-last-vertical-box.c
@@ -70,7 +70,7 @@ nautilus_keep_last_vertical_box_new (gint spacing)
{
NautilusKeepLastVerticalBox *box;
- box = gtk_type_new (nautilus_keep_last_vertical_box_get_type ());
+ box = NAUTILUS_KEEP_LAST_VERTICAL_BOX (gtk_widget_new (nautilus_keep_last_vertical_box_get_type (), NULL));
GTK_BOX (box)->spacing = spacing;
diff --git a/libnautilus-private/nautilus-label.c b/libnautilus-private/nautilus-label.c
index 5675262da..4dda451ae 100644
--- a/libnautilus-private/nautilus-label.c
+++ b/libnautilus-private/nautilus-label.c
@@ -452,12 +452,12 @@ label_recompute_line_geometries (NautilusLabel *label)
}
/* Public NautilusLabel */
-GtkWidget*
+GtkWidget *
nautilus_label_new (const char *text)
{
NautilusLabel *label;
- label = NAUTILUS_LABEL (gtk_type_new (nautilus_label_get_type ()));
+ label = NAUTILUS_LABEL (gtk_widget_new (nautilus_label_get_type (), NULL));
nautilus_label_set_text (label, text);
diff --git a/libnautilus-private/nautilus-list-column-title.c b/libnautilus-private/nautilus-list-column-title.c
index 93262fb4b..d52bdc3eb 100644
--- a/libnautilus-private/nautilus-list-column-title.c
+++ b/libnautilus-private/nautilus-list-column-title.c
@@ -155,7 +155,8 @@ nautilus_list_column_title_initialize_class (gpointer klass)
NautilusListColumnTitle *
nautilus_list_column_title_new (void)
{
- return gtk_type_new (nautilus_list_column_title_get_type ());
+ return NAUTILUS_LIST_COLUMN_TITLE
+ (gtk_widget_new (nautilus_list_column_title_get_type (), NULL));
}
static void
@@ -234,16 +235,16 @@ nautilus_list_column_title_finalize (GtkObject *object)
if (column_title->details->up_indicator_pixmap != NULL) {
gdk_pixmap_unref (column_title->details->up_indicator_pixmap);
column_title->details->up_indicator_pixmap = NULL;
-
- g_assert (column_title->details->up_indicator_mask != NULL);
+ }
+ if (column_title->details->up_indicator_mask != NULL) {
gdk_bitmap_unref (column_title->details->up_indicator_mask);
column_title->details->up_indicator_mask = NULL;
}
if (column_title->details->down_indicator_pixmap != NULL) {
gdk_pixmap_unref (column_title->details->down_indicator_pixmap);
column_title->details->down_indicator_pixmap = NULL;
-
- g_assert (column_title->details->down_indicator_mask != NULL);
+ }
+ if (column_title->details->down_indicator_mask != NULL) {
gdk_bitmap_unref (column_title->details->down_indicator_mask);
column_title->details->down_indicator_mask = NULL;
}
diff --git a/libnautilus-private/nautilus-list.c b/libnautilus-private/nautilus-list.c
index d3efda5ae..135e215a5 100644
--- a/libnautilus-private/nautilus-list.c
+++ b/libnautilus-private/nautilus-list.c
@@ -3150,7 +3150,7 @@ nautilus_list_new_with_titles (int columns, const char * const *titles)
{
NautilusList *list;
- list = gtk_type_new (nautilus_list_get_type ());
+ list = NAUTILUS_LIST (gtk_type_new (nautilus_list_get_type ()));
gtk_clist_construct (GTK_CLIST (list), columns, NULL);
if (titles) {
GtkCList *clist;
diff --git a/libnautilus-private/nautilus-password-dialog.c b/libnautilus-private/nautilus-password-dialog.c
index c5da58062..cab03648c 100644
--- a/libnautilus-private/nautilus-password-dialog.c
+++ b/libnautilus-private/nautilus-password-dialog.c
@@ -210,7 +210,7 @@ caption_table_activate_callback (GtkWidget *widget, gint entry, gpointer callbac
}
/* Public NautilusPasswordDialog methods */
-GtkWidget*
+GtkWidget *
nautilus_password_dialog_new (const char *dialog_title,
const char *message,
const char *username,
@@ -219,7 +219,7 @@ nautilus_password_dialog_new (const char *dialog_title,
{
NautilusPasswordDialog *password_dialog;
- password_dialog = gtk_type_new (nautilus_password_dialog_get_type ());
+ password_dialog = NAUTILUS_PASSWORD_DIALOG (gtk_widget_new (nautilus_password_dialog_get_type (), NULL));
gnome_dialog_constructv (GNOME_DIALOG (password_dialog), dialog_title, stock_buttons);
diff --git a/libnautilus-private/nautilus-preference.c b/libnautilus-private/nautilus-preference.c
index cbbd59481..44197b167 100644
--- a/libnautilus-private/nautilus-preference.c
+++ b/libnautilus-private/nautilus-preference.c
@@ -302,12 +302,11 @@ nautilus_preference_new_from_type (const char *name,
g_return_val_if_fail (name != NULL, NULL);
- preference = gtk_type_new (nautilus_preference_get_type ());
-
- g_assert (preference != NULL );
+ preference = NAUTILUS_PREFERENCE (gtk_object_new (nautilus_preference_get_type (), NULL));
+ gtk_object_ref (GTK_OBJECT (preference));
+ gtk_object_sink (GTK_OBJECT (preference));
preference->detail->name = g_strdup (name);
-
preference->detail->type = type;
preference_allocate_type_info (preference);
diff --git a/libnautilus-private/nautilus-preferences-box.c b/libnautilus-private/nautilus-preferences-box.c
index a1053549d..557e7dafd 100644
--- a/libnautilus-private/nautilus-preferences-box.c
+++ b/libnautilus-private/nautilus-preferences-box.c
@@ -312,7 +312,8 @@ nautilus_preferences_box_new (const gchar *box_title)
{
NautilusPreferencesBox *prefs_box;
- prefs_box = gtk_type_new (nautilus_preferences_box_get_type ());
+ prefs_box = NAUTILUS_PREFERENCES_BOX
+ (gtk_widget_new (nautilus_preferences_box_get_type (), NULL));
prefs_box_construct (prefs_box);
diff --git a/libnautilus-private/nautilus-preferences-dialog.c b/libnautilus-private/nautilus-preferences-dialog.c
index 48d0dfd27..1a126b778 100644
--- a/libnautilus-private/nautilus-preferences-dialog.c
+++ b/libnautilus-private/nautilus-preferences-dialog.c
@@ -211,12 +211,13 @@ nautilus_preferences_dialog_construct (NautilusPreferencesDialog *prefs_dialog,
gtk_widget_show (prefs_dialog->details->prefs_box);
}
-GtkWidget*
+GtkWidget *
nautilus_preferences_dialog_new (const gchar *dialog_title)
{
NautilusPreferencesDialog *prefs_dialog;
- prefs_dialog = gtk_type_new (nautilus_preferences_dialog_get_type ());
+ prefs_dialog = NAUTILUS_PREFERENCES_DIALOG
+ (gtk_widget_new (nautilus_preferences_dialog_get_type (), NULL));
nautilus_preferences_dialog_construct (prefs_dialog, dialog_title);
diff --git a/libnautilus-private/nautilus-preferences-group.c b/libnautilus-private/nautilus-preferences-group.c
index 666c71a15..b96163ec2 100644
--- a/libnautilus-private/nautilus-preferences-group.c
+++ b/libnautilus-private/nautilus-preferences-group.c
@@ -181,14 +181,15 @@ preferences_group_construct (NautilusPreferencesGroup *group,
/*
* NautilusPreferencesGroup public methods
*/
-GtkWidget*
+GtkWidget *
nautilus_preferences_group_new (const gchar *title)
{
NautilusPreferencesGroup *group;
g_return_val_if_fail (title != NULL, NULL);
- group = gtk_type_new (nautilus_preferences_group_get_type ());
+ group = NAUTILUS_PREFERENCES_GROUP
+ (gtk_widget_new (nautilus_preferences_group_get_type (), NULL));
preferences_group_construct (group, title);
diff --git a/libnautilus-private/nautilus-preferences-item.c b/libnautilus-private/nautilus-preferences-item.c
index 9cc460497..d8e2311f8 100644
--- a/libnautilus-private/nautilus-preferences-item.c
+++ b/libnautilus-private/nautilus-preferences-item.c
@@ -627,7 +627,8 @@ nautilus_preferences_item_new (const gchar *preference_name,
g_return_val_if_fail (preference_name != NULL, NULL);
- item = gtk_type_new (nautilus_preferences_item_get_type ());
+ item = NAUTILUS_PREFERENCES_ITEM
+ (gtk_widget_new (nautilus_preferences_item_get_type (), NULL));
/* Cast away the constness so that the preferences object can be
* refed in this object. */
diff --git a/libnautilus-private/nautilus-preferences-pane.c b/libnautilus-private/nautilus-preferences-pane.c
index 54051fc05..2b5167d92 100644
--- a/libnautilus-private/nautilus-preferences-pane.c
+++ b/libnautilus-private/nautilus-preferences-pane.c
@@ -214,7 +214,7 @@ prefs_pane_construct (NautilusPreferencesPane *prefs_pane,
/*
* NautilusPreferencesPane public methods
*/
-GtkWidget*
+GtkWidget *
nautilus_preferences_pane_new (const gchar *pane_title,
const gchar *pane_description)
{
@@ -223,7 +223,8 @@ nautilus_preferences_pane_new (const gchar *pane_title,
g_return_val_if_fail (pane_title != NULL, NULL);
g_return_val_if_fail (pane_description != NULL, NULL);
- prefs_pane = gtk_type_new (nautilus_preferences_pane_get_type ());
+ prefs_pane = NAUTILUS_PREFERENCES_PANE
+ (gtk_widget_new (nautilus_preferences_pane_get_type (), NULL));
prefs_pane_construct (prefs_pane, pane_title, pane_description);
diff --git a/libnautilus-private/nautilus-radio-button-group.c b/libnautilus-private/nautilus-radio-button-group.c
index 25b46f1bc..71db70521 100644
--- a/libnautilus-private/nautilus-radio-button-group.c
+++ b/libnautilus-private/nautilus-radio-button-group.c
@@ -201,7 +201,8 @@ nautilus_radio_button_group_new (gboolean is_horizontal)
{
NautilusRadioButtonGroup *button_group;
- button_group = gtk_type_new (nautilus_radio_button_group_get_type ());
+ button_group = NAUTILUS_RADIO_BUTTON_GROUP
+ (gtk_widget_new (nautilus_radio_button_group_get_type (), NULL));
button_group->details->horizontal = is_horizontal;
return GTK_WIDGET (button_group);
diff --git a/libnautilus-private/nautilus-scalable-font.c b/libnautilus-private/nautilus-scalable-font.c
index 10921f19c..5e7bf3d99 100644
--- a/libnautilus-private/nautilus-scalable-font.c
+++ b/libnautilus-private/nautilus-scalable-font.c
@@ -595,7 +595,9 @@ nautilus_scalable_font_new (const char *family,
__FUNCTION__, family, weight, slant, set_width, font_entry->font_handle);
#endif
- font = NAUTILUS_SCALABLE_FONT (gtk_type_new (nautilus_scalable_font_get_type ()));
+ font = NAUTILUS_SCALABLE_FONT (gtk_object_new (nautilus_scalable_font_get_type (), NULL));
+ gtk_object_ref (GTK_OBJECT (font));
+ gtk_object_sink (GTK_OBJECT (font));
font->detail->font_handle = font_entry->font_handle;
diff --git a/libnautilus-private/nautilus-string-picker.c b/libnautilus-private/nautilus-string-picker.c
index 1d4ef14ea..ad804f939 100644
--- a/libnautilus-private/nautilus-string-picker.c
+++ b/libnautilus-private/nautilus-string-picker.c
@@ -155,14 +155,10 @@ option_menu_activate_callback (GtkWidget *menu_item, gpointer callback_data)
/*
* NautilusStringPicker public methods
*/
-GtkWidget*
+GtkWidget *
nautilus_string_picker_new (void)
{
- NautilusStringPicker *string_picker;
-
- string_picker = gtk_type_new (nautilus_string_picker_get_type ());
-
- return GTK_WIDGET (string_picker);
+ return gtk_widget_new (nautilus_string_picker_get_type (), NULL);
}
/**
diff --git a/libnautilus-private/nautilus-text-caption.c b/libnautilus-private/nautilus-text-caption.c
index 683e6eb4c..8e4e853f0 100644
--- a/libnautilus-private/nautilus-text-caption.c
+++ b/libnautilus-private/nautilus-text-caption.c
@@ -152,14 +152,10 @@ entry_changed_callback (GtkWidget *entry, gpointer user_data)
/*
* NautilusTextCaption public methods
*/
-GtkWidget*
+GtkWidget *
nautilus_text_caption_new (void)
{
- NautilusTextCaption *text_caption;
-
- text_caption = gtk_type_new (nautilus_text_caption_get_type ());
-
- return GTK_WIDGET (text_caption);
+ return gtk_widget_new (nautilus_text_caption_get_type (), NULL);
}
/**
diff --git a/libnautilus-private/nautilus-theme.c b/libnautilus-private/nautilus-theme.c
index 00941f5c8..068cfb001 100644
--- a/libnautilus-private/nautilus-theme.c
+++ b/libnautilus-private/nautilus-theme.c
@@ -53,18 +53,18 @@ static xmlDocPtr default_theme_document = NULL;
/* return the current theme by asking the preferences machinery */
char *
-nautilus_theme_get_theme(void)
+nautilus_theme_get_theme (void)
{
return nautilus_preferences_get (NAUTILUS_PREFERENCES_THEME, "default");
}
/* set the current theme */
void
-nautilus_theme_set_theme(const char *new_theme)
+nautilus_theme_set_theme (const char *new_theme)
{
char *old_theme;
- old_theme = nautilus_theme_get_theme();
+ old_theme = nautilus_theme_get_theme ();
if (nautilus_strcmp (old_theme, new_theme)) {
nautilus_preferences_set (NAUTILUS_PREFERENCES_THEME, new_theme);
}
@@ -157,7 +157,7 @@ nautilus_theme_get_theme_data (const char *resource_name, const char *property_n
if (theme_document != NULL) {
/* fetch the resource node */
- resource_node = nautilus_xml_get_child_by_name(xmlDocGetRootElement (theme_document), resource_name);
+ resource_node = nautilus_xml_get_child_by_name (xmlDocGetRootElement (theme_document), resource_name);
if (resource_node) {
temp_str = xmlGetProp(resource_node, property_name);
if (temp_str) {
diff --git a/libnautilus-private/nautilus-undo-context.c b/libnautilus-private/nautilus-undo-context.c
index f64639e59..cc94a9f02 100644
--- a/libnautilus-private/nautilus-undo-context.c
+++ b/libnautilus-private/nautilus-undo-context.c
@@ -118,11 +118,14 @@ nautilus_undo_context_new (Nautilus_Undo_Manager undo_manager)
CORBA_exception_init (&ev);
- context = gtk_type_new (nautilus_undo_context_get_type ());
+ context = NAUTILUS_UNDO_CONTEXT (gtk_object_new (nautilus_undo_context_get_type (), NULL));
context->undo_manager = CORBA_Object_duplicate (undo_manager, &ev);
CORBA_exception_free (&ev);
+ gtk_object_ref (GTK_OBJECT (context));
+ gtk_object_sink (GTK_OBJECT (context));
+
return context;
}
diff --git a/libnautilus-private/nautilus-undo-manager.c b/libnautilus-private/nautilus-undo-manager.c
index b684978df..41a41aacd 100644
--- a/libnautilus-private/nautilus-undo-manager.c
+++ b/libnautilus-private/nautilus-undo-manager.c
@@ -230,7 +230,13 @@ corba_undo (PortableServer_Servant servant,
NautilusUndoManager *
nautilus_undo_manager_new (void)
{
- return gtk_type_new (nautilus_undo_manager_get_type ());
+ NautilusUndoManager *manager;
+
+ manager = NAUTILUS_UNDO_MANAGER (gtk_object_new (nautilus_undo_manager_get_type (), NULL));
+ gtk_object_ref (GTK_OBJECT (manager));
+ gtk_object_sink (GTK_OBJECT (manager));
+
+ return manager;
}
static void
diff --git a/libnautilus-private/nautilus-user-level-manager.c b/libnautilus-private/nautilus-user-level-manager.c
index 618bd9709..c8eaed62b 100644
--- a/libnautilus-private/nautilus-user-level-manager.c
+++ b/libnautilus-private/nautilus-user-level-manager.c
@@ -136,6 +136,8 @@ user_level_manager_new (void)
}
manager = NAUTILUS_USER_LEVEL_MANAGER (gtk_object_new (nautilus_user_level_manager_get_type (), NULL));
+ gtk_object_ref (GTK_OBJECT (manager));
+ gtk_object_sink (GTK_OBJECT (manager));
manager->gconf_client = gconf_client_get_default ();
diff --git a/libnautilus-private/nautilus-volume-monitor.c b/libnautilus-private/nautilus-volume-monitor.c
index 55eba260c..9592c9bce 100644
--- a/libnautilus-private/nautilus-volume-monitor.c
+++ b/libnautilus-private/nautilus-volume-monitor.c
@@ -190,6 +190,12 @@ nautilus_volume_monitor_destroy (GtkObject *object)
NAUTILUS_CALL_PARENT_CLASS (GTK_OBJECT_CLASS, destroy, (object));
}
+static void
+unref_global_volume_monitor (void)
+{
+ gtk_object_unref (GTK_OBJECT (global_volume_monitor));
+}
+
/* Return the global instance of the NautilusVolumeMonitor. Create one
* if we have not done so already
*/
@@ -200,6 +206,9 @@ nautilus_volume_monitor_get (void)
global_volume_monitor = NAUTILUS_VOLUME_MONITOR
(gtk_object_new (nautilus_volume_monitor_get_type(),
NULL));
+ gtk_object_ref (GTK_OBJECT (global_volume_monitor));
+ gtk_object_sink (GTK_OBJECT (global_volume_monitor));
+ g_atexit (unref_global_volume_monitor);
}
return global_volume_monitor;
diff --git a/libnautilus/nautilus-undo-transaction.c b/libnautilus/nautilus-undo-transaction.c
index c240f145d..25d6e4e87 100644
--- a/libnautilus/nautilus-undo-transaction.c
+++ b/libnautilus/nautilus-undo-transaction.c
@@ -177,7 +177,9 @@ nautilus_undo_transaction_new (const char *operation_name,
{
NautilusUndoTransaction *transaction;
- transaction = gtk_type_new (nautilus_undo_transaction_get_type ());
+ transaction = NAUTILUS_UNDO_TRANSACTION (gtk_object_new (nautilus_undo_transaction_get_type (), NULL));
+ gtk_object_ref (GTK_OBJECT (transaction));
+ gtk_object_sink (GTK_OBJECT (transaction));
transaction->operation_name = g_strdup (operation_name);
transaction->undo_menu_item_label = g_strdup (undo_menu_item_label);
diff --git a/libnautilus/nautilus-view.c b/libnautilus/nautilus-view.c
index 61467d7c6..4e01ea0ec 100644
--- a/libnautilus/nautilus-view.c
+++ b/libnautilus/nautilus-view.c
@@ -282,7 +282,7 @@ nautilus_view_new_from_bonobo_control (BonoboControl *control)
{
NautilusView *view;
- view = NAUTILUS_VIEW (gtk_type_new (NAUTILUS_TYPE_VIEW));
+ view = NAUTILUS_VIEW (gtk_object_new (NAUTILUS_TYPE_VIEW, NULL));
view->details->control = control;
bonobo_object_add_interface (BONOBO_OBJECT (view), BONOBO_OBJECT (control));
nautilus_undo_set_up_bonobo_control (control);
diff --git a/nautilus-installer/src/installer.c b/nautilus-installer/src/installer.c
index 8700d66b3..e7bbdfcd9 100644
--- a/nautilus-installer/src/installer.c
+++ b/nautilus-installer/src/installer.c
@@ -115,7 +115,7 @@ create_pixmap (GtkWidget *widget,
NULL,
(gchar**)xpmdata);
- g_assert (gdkpixmap);
+ g_assert (gdkpixmap != NULL);
pixbuf = gdk_pixbuf_get_from_drawable (NULL,
gdkpixmap,
@@ -124,7 +124,9 @@ create_pixmap (GtkWidget *widget,
x, y);
gdk_pixmap_unref (gdkpixmap);
- gdk_bitmap_unref (mask);
+ if (mask != NULL) {
+ gdk_bitmap_unref (mask);
+ }
return pixbuf;
}
@@ -1259,8 +1261,8 @@ eazel_installer_get_type() {
The _new method simply builds the service
using gtk_object_new
*/
-EazelInstaller*
-eazel_installer_new()
+EazelInstaller *
+eazel_installer_new (void)
{
EazelInstaller *installer;
diff --git a/src/file-manager/fm-directory-view.c b/src/file-manager/fm-directory-view.c
index 5917300d8..082f5eb69 100644
--- a/src/file-manager/fm-directory-view.c
+++ b/src/file-manager/fm-directory-view.c
@@ -2488,6 +2488,7 @@ no_items_showing (FMDirectoryView *directory_view)
/* This can happen when it's too early to tell. */
if (!nautilus_file_is_directory (directory_as_file)) {
+ nautilus_file_unref (directory_as_file);
return FALSE;
}
diff --git a/src/file-manager/fm-list-view.c b/src/file-manager/fm-list-view.c
index 937d37c82..bf8db4d7b 100644
--- a/src/file-manager/fm-list-view.c
+++ b/src/file-manager/fm-list-view.c
@@ -1539,7 +1539,9 @@ install_row_images (FMListView *list_view, guint row)
&pixmap, &bitmap);
gtk_clist_set_pixmap (clist, row, LIST_VIEW_COLUMN_ICON, pixmap, bitmap);
gdk_pixmap_unref (pixmap);
- gdk_bitmap_unref (bitmap);
+ if (bitmap != NULL) {
+ gdk_bitmap_unref (bitmap);
+ }
/* Install any emblems for this file. */
nautilus_list_set_pixbuf_list (list, row, LIST_VIEW_COLUMN_EMBLEMS,
diff --git a/src/file-manager/nautilus-trash-monitor.c b/src/file-manager/nautilus-trash-monitor.c
index 940f51680..190240fef 100644
--- a/src/file-manager/nautilus-trash-monitor.c
+++ b/src/file-manager/nautilus-trash-monitor.c
@@ -158,7 +158,10 @@ nautilus_trash_monitor_get (void)
{
if (nautilus_trash_monitor == NULL) {
/* not running yet, start it up */
- nautilus_trash_monitor = gtk_type_new (NAUTILUS_TYPE_TRASH_MONITOR);
+ nautilus_trash_monitor = NAUTILUS_TRASH_MONITOR
+ (gtk_object_new (NAUTILUS_TYPE_TRASH_MONITOR, NULL));
+ gtk_object_ref (GTK_OBJECT (nautilus_trash_monitor));
+ gtk_object_sink (GTK_OBJECT (nautilus_trash_monitor));
g_atexit (unref_trash_monitor);
}
diff --git a/src/nautilus-about.c b/src/nautilus-about.c
index 0bab5344b..81f632678 100644
--- a/src/nautilus-about.c
+++ b/src/nautilus-about.c
@@ -183,7 +183,7 @@ nautilus_about_initialize (NautilusAbout *about)
}
/* allocate a new about dialog */
-GtkWidget*
+GtkWidget *
nautilus_about_new (const char *title,
const char *version,
const char *copyright,
@@ -193,7 +193,7 @@ nautilus_about_new (const char *title,
{
NautilusAbout *about;
- about = gtk_type_new (nautilus_about_get_type ());
+ about = NAUTILUS_ABOUT (gtk_widget_new (nautilus_about_get_type (), NULL));
/* draw the info onto the pixbuf, once and for all */
nautilus_about_draw_info (about, title, version, copyright, authors, comments, timestamp);
diff --git a/src/nautilus-application.c b/src/nautilus-application.c
index c1a9667d4..45f4e16b1 100644
--- a/src/nautilus-application.c
+++ b/src/nautilus-application.c
@@ -182,7 +182,12 @@ nautilus_application_initialize (NautilusApplication *application)
NautilusApplication *
nautilus_application_new (void)
{
- return NAUTILUS_APPLICATION (gtk_object_new (nautilus_application_get_type (), NULL));
+ NautilusApplication *application;
+
+ application = NAUTILUS_APPLICATION (gtk_object_new (nautilus_application_get_type (), NULL));
+ gtk_object_ref (GTK_OBJECT (application));
+ gtk_object_sink (GTK_OBJECT (application));
+ return application;
}
static void
@@ -488,10 +493,10 @@ nautilus_application_create_window (NautilusApplication *application)
g_return_val_if_fail (NAUTILUS_IS_APPLICATION (application), NULL);
- window = NAUTILUS_WINDOW (gtk_object_new (nautilus_window_get_type (),
+ window = NAUTILUS_WINDOW (gtk_widget_new (nautilus_window_get_type (),
"app", GTK_OBJECT (application),
"app_id", "nautilus", NULL));
-
+
gtk_signal_connect (GTK_OBJECT (window),
"delete_event", GTK_SIGNAL_FUNC (nautilus_window_delete_event_callback),
NULL);
diff --git a/src/nautilus-bookmark-list.c b/src/nautilus-bookmark-list.c
index 958614231..0d9b6f12c 100644
--- a/src/nautilus-bookmark-list.c
+++ b/src/nautilus-bookmark-list.c
@@ -464,7 +464,13 @@ nautilus_bookmark_list_load_file (NautilusBookmarkList *bookmarks)
NautilusBookmarkList *
nautilus_bookmark_list_new (void)
{
- return gtk_type_new (NAUTILUS_TYPE_BOOKMARK_LIST);
+ NautilusBookmarkList *list;
+
+ list = NAUTILUS_BOOKMARK_LIST (gtk_object_new (NAUTILUS_TYPE_BOOKMARK_LIST, NULL));
+ gtk_object_ref (GTK_OBJECT (list));
+ gtk_object_sink (GTK_OBJECT (list));
+
+ return list;
}
/**
diff --git a/src/nautilus-component-adapter-factory.c b/src/nautilus-component-adapter-factory.c
index 1e0d0a79f..000cef471 100644
--- a/src/nautilus-component-adapter-factory.c
+++ b/src/nautilus-component-adapter-factory.c
@@ -37,8 +37,7 @@
#define NAUTILUS_COMPONENT_ADAPTER_FACTORY_IID "OAFIID:nautilus_adapter_factory:fd24ecfc-0a6e-47ab-bc53-69d7487c6ad4"
-struct NautilusComponentAdapterFactoryDetails
-{
+struct NautilusComponentAdapterFactoryDetails {
Nautilus_ComponentAdapterFactory corba_factory;
};
@@ -58,7 +57,6 @@ nautilus_component_adapter_factory_initialize_class (NautilusComponentAdapterFa
object_class = (GtkObjectClass*) klass;
object_class->destroy = nautilus_component_adapter_factory_destroy;
-
}
static void
@@ -68,40 +66,27 @@ nautilus_component_adapter_factory_initialize (NautilusComponentAdapterFactory *
factory->details = g_new0 (NautilusComponentAdapterFactoryDetails, 1);
- /* FIXME: what if activation fails? Is it valid for an
- initialize function to fail, and if so, how should it do
- so?? */
-
object_client = bonobo_object_activate (NAUTILUS_COMPONENT_ADAPTER_FACTORY_IID, 0);
-
-
- /* FIXME: what if this query fails? Is it valid for an
- initialize function to fail, and if so, how should it do
- so?? */
-
if (object_client != NULL) {
factory->details->corba_factory = bonobo_object_query_interface
(BONOBO_OBJECT (object_client), "IDL:Nautilus/ComponentAdapterFactory:1.0");
-
- /* FIXME: Do we want a gtk_object_unref or a bonobo_object_unref? */
bonobo_object_unref (BONOBO_OBJECT (object_client));
}
+
+ /* FIXME: Since corba_factory could now be NULL, what do we do in that case? */
}
static void
nautilus_component_adapter_factory_destroy (GtkObject *object)
{
- CORBA_Environment ev;
NautilusComponentAdapterFactory *factory;
factory = NAUTILUS_COMPONENT_ADAPTER_FACTORY (object);
- CORBA_exception_init (&ev);
- if (factory->details->corba_factory != NULL) {
- Bonobo_Unknown_unref (factory->details->corba_factory, &ev);
+ if (factory->details->corba_factory != CORBA_OBJECT_NIL) {
+ bonobo_object_release_unref (factory->details->corba_factory, NULL);
}
- CORBA_exception_free (&ev);
g_free (factory->details);
}
@@ -113,25 +98,23 @@ static NautilusComponentAdapterFactory *global_component_adapter_factory = NULL;
static void
component_adapter_factory_at_exit_destructor (void)
{
- if (global_component_adapter_factory != NULL) {
- gtk_object_unref (GTK_OBJECT (global_component_adapter_factory));
- }
+ gtk_object_unref (GTK_OBJECT (global_component_adapter_factory));
}
NautilusComponentAdapterFactory *
nautilus_component_adapter_factory_get (void)
{
-
if (global_component_adapter_factory == NULL) {
- global_component_adapter_factory = gtk_type_new (NAUTILUS_TYPE_COMPONENT_ADAPTER_FACTORY);
+ global_component_adapter_factory = NAUTILUS_COMPONENT_ADAPTER_FACTORY
+ (gtk_object_new (NAUTILUS_TYPE_COMPONENT_ADAPTER_FACTORY, NULL));
+ gtk_object_ref (GTK_OBJECT (global_component_adapter_factory));
+ gtk_object_sink (GTK_OBJECT (global_component_adapter_factory));
- /* FIXME: is it OK to destroy CORBA objects in an atexit handler? */
g_atexit (component_adapter_factory_at_exit_destructor);
}
return global_component_adapter_factory;
-
}
Nautilus_View
diff --git a/src/nautilus-desktop-window.c b/src/nautilus-desktop-window.c
index 0571d66ee..e22dcc43d 100644
--- a/src/nautilus-desktop-window.c
+++ b/src/nautilus-desktop-window.c
@@ -96,7 +96,7 @@ nautilus_desktop_window_new (NautilusApplication *application)
char *desktop_directory_uri;
window = NAUTILUS_DESKTOP_WINDOW
- (gtk_object_new (nautilus_desktop_window_get_type(),
+ (gtk_widget_new (nautilus_desktop_window_get_type(),
"app", application,
"app_id", "nautilus",
NULL));
diff --git a/src/nautilus-information-panel.c b/src/nautilus-information-panel.c
index e7883efc4..fd41ee672 100644
--- a/src/nautilus-information-panel.c
+++ b/src/nautilus-information-panel.c
@@ -437,7 +437,7 @@ nautilus_sidebar_create_context_menu (NautilusSidebar *sidebar)
/* add a separator */
menu_item = gtk_menu_item_new ();
gtk_widget_show (menu_item);
- gtk_menu_append (GTK_MENU(menu), menu_item);
+ gtk_menu_append (GTK_MENU (menu), menu_item);
/* add the sidebar panels */
nautilus_sidebar_add_panel_items(sidebar, menu);
@@ -448,7 +448,7 @@ nautilus_sidebar_create_context_menu (NautilusSidebar *sidebar)
NautilusSidebar *
nautilus_sidebar_new (void)
{
- return NAUTILUS_SIDEBAR (gtk_type_new (nautilus_sidebar_get_type ()));
+ return NAUTILUS_SIDEBAR (gtk_widget_new (nautilus_sidebar_get_type (), NULL));
}
/* utility routine to handle mapping local file names to a uri */
diff --git a/src/nautilus-property-browser.c b/src/nautilus-property-browser.c
index f61d3194b..b62ffd3dc 100644
--- a/src/nautilus-property-browser.c
+++ b/src/nautilus-property-browser.c
@@ -396,8 +396,10 @@ nautilus_property_browser_destroy (GtkObject *object)
NautilusPropertyBrowser *
nautilus_property_browser_new (void)
{
- NautilusPropertyBrowser *browser = NAUTILUS_PROPERTY_BROWSER
- (gtk_type_new (nautilus_property_browser_get_type ()));
+ NautilusPropertyBrowser *browser;
+
+ browser = NAUTILUS_PROPERTY_BROWSER
+ (gtk_widget_new (nautilus_property_browser_get_type (), NULL));
gtk_container_set_border_width (GTK_CONTAINER (browser), 0);
gtk_window_set_policy (GTK_WINDOW(browser), TRUE, TRUE, FALSE);
diff --git a/src/nautilus-shell.c b/src/nautilus-shell.c
index af9ddf685..1c3d63e73 100644
--- a/src/nautilus-shell.c
+++ b/src/nautilus-shell.c
@@ -146,7 +146,7 @@ nautilus_shell_new (NautilusApplication *application)
{
NautilusShell *shell;
- shell = gtk_type_new (NAUTILUS_TYPE_SHELL);
+ shell = NAUTILUS_SHELL (gtk_object_new (NAUTILUS_TYPE_SHELL, NULL));
shell->details->application = application;
return shell;
}
diff --git a/src/nautilus-sidebar-tabs.c b/src/nautilus-sidebar-tabs.c
index 9cfa9bf8b..78a242720 100644
--- a/src/nautilus-sidebar-tabs.c
+++ b/src/nautilus-sidebar-tabs.c
@@ -262,10 +262,10 @@ nautilus_sidebar_tabs_initialize (NautilusSidebarTabs *sidebar_tabs)
sidebar_tabs->details->title_prelit = FALSE;
}
-GtkWidget*
+GtkWidget *
nautilus_sidebar_tabs_new (void)
{
- return GTK_WIDGET (gtk_type_new (nautilus_sidebar_tabs_get_type ()));
+ return gtk_widget_new (nautilus_sidebar_tabs_get_type (), NULL);
}
/* utility to destroy all the storage used by a tab item */
diff --git a/src/nautilus-sidebar-title.c b/src/nautilus-sidebar-title.c
index 3f1502f18..455f39dc8 100644
--- a/src/nautilus-sidebar-title.c
+++ b/src/nautilus-sidebar-title.c
@@ -196,7 +196,7 @@ nautilus_sidebar_title_destroy (GtkObject *object)
GtkWidget *
nautilus_sidebar_title_new (void)
{
- return GTK_WIDGET (gtk_type_new (nautilus_sidebar_title_get_type ()));
+ return gtk_widget_new (nautilus_sidebar_title_get_type (), NULL);
}
/* utility to set up the style of a widget to have a particular color */
diff --git a/src/nautilus-sidebar.c b/src/nautilus-sidebar.c
index e7883efc4..fd41ee672 100644
--- a/src/nautilus-sidebar.c
+++ b/src/nautilus-sidebar.c
@@ -437,7 +437,7 @@ nautilus_sidebar_create_context_menu (NautilusSidebar *sidebar)
/* add a separator */
menu_item = gtk_menu_item_new ();
gtk_widget_show (menu_item);
- gtk_menu_append (GTK_MENU(menu), menu_item);
+ gtk_menu_append (GTK_MENU (menu), menu_item);
/* add the sidebar panels */
nautilus_sidebar_add_panel_items(sidebar, menu);
@@ -448,7 +448,7 @@ nautilus_sidebar_create_context_menu (NautilusSidebar *sidebar)
NautilusSidebar *
nautilus_sidebar_new (void)
{
- return NAUTILUS_SIDEBAR (gtk_type_new (nautilus_sidebar_get_type ()));
+ return NAUTILUS_SIDEBAR (gtk_widget_new (nautilus_sidebar_get_type (), NULL));
}
/* utility routine to handle mapping local file names to a uri */
diff --git a/src/nautilus-signaller.c b/src/nautilus-signaller.c
index d64223681..6853a775f 100644
--- a/src/nautilus-signaller.c
+++ b/src/nautilus-signaller.c
@@ -32,8 +32,9 @@
#include <gtk/gtksignal.h>
#include <libnautilus-extensions/nautilus-gtk-macros.h>
-enum
-{
+static NautilusSignaller *global_signaller = NULL;
+
+enum {
HISTORY_LIST_CHANGED,
EMBLEMS_CHANGED,
LAST_SIGNAL
@@ -42,9 +43,12 @@ enum
static guint nautilus_signaller_signals[LAST_SIGNAL];
static void nautilus_signaller_initialize_class (gpointer klass);
-static void nautilus_signaller_initialize (gpointer object, gpointer klass);
+static void nautilus_signaller_initialize (gpointer object,
+ gpointer klass);
-NAUTILUS_DEFINE_CLASS_BOILERPLATE (NautilusSignaller, nautilus_signaller, GTK_TYPE_OBJECT)
+NAUTILUS_DEFINE_CLASS_BOILERPLATE (NautilusSignaller,
+ nautilus_signaller,
+ GTK_TYPE_OBJECT)
static void
nautilus_signaller_initialize_class (gpointer klass)
@@ -76,14 +80,20 @@ nautilus_signaller_initialize (gpointer object, gpointer klass)
/* placeholder to allow use of boilerplate macro */
}
+static void
+unref_global_signaller (void)
+{
+ gtk_object_unref (GTK_OBJECT (global_signaller));
+}
+
NautilusSignaller *
nautilus_signaller_get_current (void)
{
- static NautilusSignaller *global_signaller = NULL;
-
- if (global_signaller == NULL)
- {
- global_signaller = gtk_type_new (NAUTILUS_TYPE_SIGNALLER);
+ if (global_signaller == NULL) {
+ global_signaller = NAUTILUS_SIGNALLER (gtk_object_new (NAUTILUS_TYPE_SIGNALLER, NULL));
+ gtk_object_ref (GTK_OBJECT (global_signaller));
+ gtk_object_sink (GTK_OBJECT (global_signaller));
+ g_atexit (unref_global_signaller);
}
return global_signaller;
diff --git a/src/nautilus-theme-selector.c b/src/nautilus-theme-selector.c
index aca19d527..88d9f624f 100644
--- a/src/nautilus-theme-selector.c
+++ b/src/nautilus-theme-selector.c
@@ -301,7 +301,7 @@ NautilusThemeSelector *
nautilus_theme_selector_new (void)
{
NautilusThemeSelector *browser = NAUTILUS_THEME_SELECTOR
- (gtk_type_new (nautilus_theme_selector_get_type ()));
+ (gtk_widget_new (nautilus_theme_selector_get_type (), NULL));
gtk_container_set_border_width (GTK_CONTAINER (browser), 0);
gtk_window_set_policy (GTK_WINDOW(browser), TRUE, TRUE, FALSE);
@@ -659,7 +659,7 @@ add_theme (NautilusThemeSelector *theme_selector, const char *theme_path_uri, co
/* set up the theme logo image */
gtk_clist_set_pixmap (GTK_CLIST(theme_selector->details->theme_list), theme_index, 0, pixmap , mask);
gtk_clist_set_row_data (GTK_CLIST(theme_selector->details->theme_list),
- theme_index, g_strdup(theme_name ));
+ theme_index, g_strdup (theme_name));
/* set up the fonts for the theme name and description */
@@ -667,7 +667,9 @@ add_theme (NautilusThemeSelector *theme_selector, const char *theme_path_uri, co
set_preferred_font_for_cell (theme_selector, theme_index, 2, 10);
gdk_pixmap_unref (pixmap);
- gdk_bitmap_unref (mask);
+ if (mask != NULL) {
+ gdk_bitmap_unref (mask);
+ }
}
/* utility routine to populate by iterating through the passed-in directory */
diff --git a/src/nautilus-throbber.c b/src/nautilus-throbber.c
index 0967a97ed..199480b6d 100644
--- a/src/nautilus-throbber.c
+++ b/src/nautilus-throbber.c
@@ -171,11 +171,10 @@ nautilus_throbber_initialize (NautilusThrobber *throbber)
}
/* allocate a new throbber */
-GtkWidget*
-nautilus_throbber_new ()
+GtkWidget *
+nautilus_throbber_new (void)
{
- NautilusThrobber *throbber = gtk_type_new (nautilus_throbber_get_type ());
- return GTK_WIDGET (throbber);
+ return gtk_widget_new (nautilus_throbber_get_type (), NULL);
}
/* handler for handling theme changes */
diff --git a/src/nautilus-view-frame.c b/src/nautilus-view-frame.c
index 80b9b0562..ba4a66bac 100644
--- a/src/nautilus-view-frame.c
+++ b/src/nautilus-view-frame.c
@@ -297,7 +297,7 @@ nautilus_view_frame_new (BonoboUIHandler *ui_handler,
{
NautilusViewFrame *view_frame;
- view_frame = NAUTILUS_VIEW_FRAME (gtk_object_new (nautilus_view_frame_get_type (), NULL));
+ view_frame = NAUTILUS_VIEW_FRAME (gtk_widget_new (nautilus_view_frame_get_type (), NULL));
view_frame->ui_handler = ui_handler;
view_frame->undo_manager = undo_manager;
diff --git a/src/nautilus-zoom-control.c b/src/nautilus-zoom-control.c
index a0658ab54..5a0544d3c 100644
--- a/src/nautilus-zoom-control.c
+++ b/src/nautilus-zoom-control.c
@@ -235,11 +235,10 @@ nautilus_zoom_control_initialize (NautilusZoomControl *zoom_control)
}
/* allocate a new zoom control */
-GtkWidget*
-nautilus_zoom_control_new ()
+GtkWidget *
+nautilus_zoom_control_new (void)
{
- NautilusZoomControl *zoom_control = gtk_type_new (nautilus_zoom_control_get_type ());
- return GTK_WIDGET (zoom_control);
+ return gtk_widget_new (nautilus_zoom_control_get_type (), NULL);
}
/* handler for handling theme changes */
@@ -620,16 +619,10 @@ nautilus_zoom_control_button_press_event (GtkWidget *widget, GdkEventButton *eve
/* check for the context menu button and handle by creating and showing the menu */
if (event->button == CONTEXTUAL_MENU_BUTTON) {
- GtkMenu *zoom_menu = create_zoom_menu (widget);
-
- gtk_object_ref (GTK_OBJECT (zoom_menu));
- gtk_object_sink (GTK_OBJECT (zoom_menu));
-
- nautilus_pop_up_context_menu (zoom_menu,
+ nautilus_pop_up_context_menu (create_zoom_menu (widget),
NAUTILUS_DEFAULT_POPUP_MENU_DISPLACEMENT,
NAUTILUS_DEFAULT_POPUP_MENU_DISPLACEMENT,
CONTEXTUAL_MENU_BUTTON);
- gtk_object_unref (GTK_OBJECT (zoom_menu));
return TRUE;
}