Download the current file when it cannot be displayed (with WebKit's widget)

This commit is contained in:
Pierre Pronchery 2010-03-17 23:09:11 +00:00
parent 1e2ae3c167
commit e7e8bdcd69
2 changed files with 12 additions and 9 deletions

View File

@ -356,16 +356,19 @@ static gboolean _on_load_error(WebKitWebView * view, WebKitWebFrame * frame,
Surfer * surfer; Surfer * surfer;
surfer = g_object_get_data(G_OBJECT(data), "surfer"); surfer = g_object_get_data(G_OBJECT(data), "surfer");
if(error != NULL && error->message != NULL) if(error == NULL)
{ return surfer_error(surfer, "Unknown error", TRUE);
/* ignore if the user cancelled it */
if(error->domain == WEBKIT_NETWORK_ERROR if(error->domain == WEBKIT_NETWORK_ERROR
&& error->code && error->code == WEBKIT_NETWORK_ERROR_CANCELLED)
== WEBKIT_NETWORK_ERROR_CANCELLED) return TRUE; /* ignored if the user cancelled it */
if(error->domain == WEBKIT_POLICY_ERROR
&& error->code == WEBKIT_POLICY_ERROR_FRAME_LOAD_INTERRUPTED_BY_POLICY_CHANGE)
{
/* FIXME propose to download or cancel instead */
surfer_download(surfer, uri, NULL);
return TRUE; return TRUE;
surfer_error(surfer, error->message, 0);
} }
return TRUE; return surfer_error(surfer, error->message, TRUE);
} }

View File

@ -489,7 +489,7 @@ int surfer_error(Surfer * surfer, char const * message, int ret)
GTK_DIALOG_DESTROY_WITH_PARENT, GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", "Error"); GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", "Error");
gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog), gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),
"%s", message); "%s", (message != NULL) ? message : "Unknown error");
gtk_window_set_title(GTK_WINDOW(dialog), "Error"); gtk_window_set_title(GTK_WINDOW(dialog), "Error");
g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK( g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(
gtk_widget_destroy), NULL); gtk_widget_destroy), NULL);