diff options
author | Elliot Lee <sopwith@src.gnome.org> | 1999-12-22 19:02:50 +0000 |
---|---|---|
committer | Elliot Lee <sopwith@src.gnome.org> | 1999-12-22 19:02:50 +0000 |
commit | c1b5430908ac8137f9aca3c6eb6a887c3ffb39c9 (patch) | |
tree | e90bd18a186b1256ca06002e438faf8ee48fd44c /components/html | |
parent | 4994722e587f048267b4d18a32fd13cf16c49b04 (diff) | |
download | nautilus-c1b5430908ac8137f9aca3c6eb6a887c3ffb39c9.tar.gz |
Allow passing initial URL on cmdline.
Allow passing initial URL on cmdline.
Try to make web browser work.
Diffstat (limited to 'components/html')
-rw-r--r-- | components/html/ntl-web-browser.c | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/components/html/ntl-web-browser.c b/components/html/ntl-web-browser.c index 891a49ee4..c9c64d32b 100644 --- a/components/html/ntl-web-browser.c +++ b/components/html/ntl-web-browser.c @@ -183,8 +183,11 @@ static int netin_stream_flush (HTStream * me) static int netin_stream_free (HTStream * me) { + g_return_val_if_fail(me->handle, HT_ERROR); + + g_message("netin_stream_free"); gtk_html_end(GTK_HTML(me->bi->htmlw), me->handle, GTK_HTML_STREAM_OK); - gtk_html_stream_unref(me->handle); + me->handle = NULL; g_free(me); return HT_OK; @@ -192,8 +195,8 @@ static int netin_stream_free (HTStream * me) static int netin_stream_abort (HTStream * me, HTList * e) { - gtk_html_end(GTK_HTML(me->bi->htmlw), me->handle, GTK_HTML_STREAM_OK); - gtk_html_stream_unref(me->handle); + g_message("netin_stream_abort"); + gtk_html_end(GTK_HTML(me->bi->htmlw), me->handle, GTK_HTML_STREAM_ERROR); g_free(me); return HT_OK; @@ -219,11 +222,30 @@ netin_stream_new (BrowserInfo *bi, GtkHTMLStreamHandle handle) retval->isa = &netin_stream_class; retval->bi = bi; - retval->handle = gtk_html_stream_ref(handle); + retval->handle = handle; return retval; } +static gboolean +do_request_delete(gpointer req) +{ + HTRequest_delete(req); + + return FALSE; +} + +static int +request_terminator (HTRequest * request, HTResponse * response, void * param, int status) { + if (status != HT_LOADED) + g_print("Load couldn't be completed successfully (%p)\n", request); + + g_idle_add(do_request_delete, request); + + return HT_OK; +} + + static void browser_url_requested(GtkWidget *htmlw, const char *url, GtkHTMLStreamHandle handle, BrowserInfo *bi) { @@ -235,6 +257,7 @@ browser_url_requested(GtkWidget *htmlw, const char *url, GtkHTMLStreamHandle han request = HTRequest_new(); writer = netin_stream_new(bi, handle); + HTRequest_setContext(request, writer); HTRequest_setOutputFormat(request, WWW_SOURCE); HTRequest_setOutputStream(request, writer); HTRequest_setAnchor(request, HTAnchor_findAddress(real_url)); @@ -267,6 +290,7 @@ browser_set_base_target(GtkWidget *htmlw, const char *base_target_url, BrowserIn static void browser_goto_url_real(GtkWidget *htmlw, const char *url, BrowserInfo *bi) { + HTNet_killAll(); g_free(bi->base_url); g_free(bi->base_target_url); @@ -368,6 +392,7 @@ int main(int argc, char *argv[]) GNORBA_INIT_SERVER_FUNC, &ev); gdk_rgb_init(); glibwww_init("ntl-web-browser", VERSION); + HTNet_addAfter(request_terminator, NULL, NULL, HT_ALL, HT_FILTER_LAST); bonobo_init(orb, CORBA_OBJECT_NIL, CORBA_OBJECT_NIL); factory = gnome_generic_factory_new_multi("ntl_web_browser_factory", make_obj, NULL); |