summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;
}