summaryrefslogtreecommitdiff
path: root/src/nautilus-view-frame-nautilus-view.c
diff options
context:
space:
mode:
authorElliot Lee <sopwith@src.gnome.org>2000-01-05 23:21:06 +0000
committerElliot Lee <sopwith@src.gnome.org>2000-01-05 23:21:06 +0000
commit6018bcea245c2e4a9c50055fe6207435850549ff (patch)
tree2de36703f80e7a24435e69d4194eb56f62b55454 /src/nautilus-view-frame-nautilus-view.c
parentcdf570ee034dc1349846eeb5f78775a23ea2eb47 (diff)
downloadnautilus-6018bcea245c2e4a9c50055fe6207435850549ff.tar.gz
Add support for the location change state machine and related
* src/ntl-types.h, src/ntl-uri-map.[ch], src/ntl-window-msgs.c, src/ntl-window.[ch]: Add support for the location change state machine and related notifications, to allow much better error handling. * src/ntl-view.[ch]: Catch client failures, also allow for active sensing of client death. * src/file-manager/fm-directory-view.c: Send progress notifications. * components/html/ntl-web-browser.c: Send progress notifications. Try to fix crashes caused by ending an error stream twice.
Diffstat (limited to 'src/nautilus-view-frame-nautilus-view.c')
-rw-r--r--src/nautilus-view-frame-nautilus-view.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/nautilus-view-frame-nautilus-view.c b/src/nautilus-view-frame-nautilus-view.c
index abb30a995..eb9e939a4 100644
--- a/src/nautilus-view-frame-nautilus-view.c
+++ b/src/nautilus-view-frame-nautilus-view.c
@@ -61,6 +61,8 @@ nv_show_properties(NautilusView *view, CORBA_Environment *ev)
NautilusViewInfo *nvi = view->component_data;
Nautilus_View_show_properties(nvi->view_client, ev);
+ if(ev->_major != CORBA_NO_EXCEPTION)
+ gtk_object_destroy(GTK_OBJECT(view));
}
static void
@@ -69,6 +71,8 @@ nv_save_state(NautilusView *view, const char *config_path, CORBA_Environment *ev
NautilusViewInfo *nvi = view->component_data;
Nautilus_View_save_state(nvi->view_client, config_path, ev);
+ if(ev->_major != CORBA_NO_EXCEPTION)
+ gtk_object_destroy(GTK_OBJECT(view));
}
static void
@@ -77,6 +81,8 @@ nv_load_state(NautilusView *view, const char *config_path, CORBA_Environment *ev
NautilusViewInfo *nvi = view->component_data;
Nautilus_View_load_state(nvi->view_client, config_path, ev);
+ if(ev->_major != CORBA_NO_EXCEPTION)
+ gtk_object_destroy(GTK_OBJECT(view));
}
static void
@@ -85,6 +91,8 @@ nv_notify_location_change(NautilusView *view, Nautilus_NavigationInfo *nav_ctx,
NautilusViewInfo *nvi = view->component_data;
Nautilus_View_notify_location_change(nvi->view_client, nav_ctx, ev);
+ if(ev->_major != CORBA_NO_EXCEPTION)
+ gtk_object_destroy(GTK_OBJECT(view));
}
static void
@@ -93,6 +101,8 @@ nv_notify_selection_change(NautilusView *view, Nautilus_SelectionInfo *nav_ctx,
NautilusViewInfo *nvi = view->component_data;
Nautilus_View_notify_selection_change(nvi->view_client, nav_ctx, ev);
+ if(ev->_major != CORBA_NO_EXCEPTION)
+ gtk_object_destroy(GTK_OBJECT(view));
}
static void
@@ -101,9 +111,10 @@ nv_stop_location_change(NautilusView *view, CORBA_Environment *ev)
NautilusViewInfo *nvi = view->component_data;
Nautilus_View_stop_location_change(nvi->view_client, ev);
+ if(ev->_major != CORBA_NO_EXCEPTION)
+ gtk_object_destroy(GTK_OBJECT(view));
}
-
static char *
nv_get_label(NautilusView *view, CORBA_Environment *ev)
{