summaryrefslogtreecommitdiff
path: root/src/nautilus-object-window.h
diff options
context:
space:
mode:
authorJohn Harper <jsh@eazel.com>2001-02-27 01:42:19 +0000
committerJohn Harper <jsh@src.gnome.org>2001-02-27 01:42:19 +0000
commit79292ada92966d23ac8de92b3b52889cc453eef6 (patch)
tree26d9cd99ad477571dcc0eb16f2fa7ff4a26ab734 /src/nautilus-object-window.h
parent5107e445b0a2fec38101e4033e06586104a5064e (diff)
downloadnautilus-79292ada92966d23ac8de92b3b52889cc453eef6.tar.gz
reviewed by: Michael Engber <engber@eazel.com>
2001-02-26 John Harper <jsh@eazel.com> reviewed by: Michael Engber <engber@eazel.com> Fixed bug 6898 (Tree view initialization may be slower than in PR3). Instead of instantiating and destroying Nautilus_Metafile bonobo objects each time metadata is queried, cache an object for each directory: * libnautilus-extensions/nautilus-directory-metafile.c (corba_object_is_local, corba_object_get_servant): new functions. These are ORBit dependent hacks (get_metafile): cache the Nautilus_Metafile object in the NautilusDirectory. Use the above ORBit hacks to break the circular reference when both client and servant are in the same process (the servant has always referenced the directory, caching the metafile in the directory introduces the cycle) * libnautilus-extensions/nautilus-directory-private.h (NautilusDirectoryDetails): added field metafile_corba_object * libnautilus-extensions/nautilus-directory.c (nautilus_directory_destroy): unref the cached Nautilus_Metafile object if its non-nil * libnautilus-extensions/nautilus-metafile.c, libnautilus-extensions/nautilus-metafile.h (NautilusMetafileDetails): temporarily moved to nautilus-metafile.h * libnautilus-extensions/nautilus-metafile.c (destroy): only unref the metafile's NautilusDirectory if the directory_ref_is_gone flag isn't set (set by the get_metafile method of nautilus-directory-metafile.c when it breaks the cycle) 2001-02-26 John Harper <jsh@eazel.com> reviewed by Darin Adler <darin@eazel.com> Moved much of the BonoboUI overhead to the idle handler. This should decrease latency when opening new windows. * src/nautilus-window-private.h: added fields to NautilusWindowDetails structure: ui_change_depth, ui_idle_id, ui_is_frozen, ui_pending_menu_initialize * src/nautilus-window.c, src/nautilus-window.h (nautilus_window_ui_freeze, nautilus_window_ui_thaw): new functions. Used to intelligently freeze and thaw the BonoboUIEngine associated with the window's container. The thawing (and thus the updating) is done in an idle handler (nautilus_window_ui_update): used to defeat the UI deferral, and update immediately (nautilus_window_constructed): moved part of the menu bar initialization to the idle handler * src/nautilus-window-manage-views.c, src/nautilus-window-menus.c, src/nautilus-window-toolbar.c, src/nautilus-window.c: call nautilus_window_ui_freeze before doing any UI changes, and nautilus_window_ui_thaw afterwards * src/nautilus-window-menus.c (nautilus_window_initialize_menus): split into two functions: nautilus_window_initialize_menus_part_1 and _part_2. Part two populates the `Go' and `Bookmarks' menus (and is deferred until the idle loop)
Diffstat (limited to 'src/nautilus-object-window.h')
-rw-r--r--src/nautilus-object-window.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/nautilus-object-window.h b/src/nautilus-object-window.h
index 704a25b35..0d02f0e9e 100644
--- a/src/nautilus-object-window.h
+++ b/src/nautilus-object-window.h
@@ -106,6 +106,8 @@ struct NautilusWindow {
};
GtkType nautilus_window_get_type (void);
+void nautilus_window_ui_freeze (NautilusWindow *window);
+void nautilus_window_ui_thaw (NautilusWindow *window);
void nautilus_window_close (NautilusWindow *window);
char * nautilus_window_get_location (NautilusWindow *window);
void nautilus_window_go_to (NautilusWindow *window,