aboutsummaryrefslogtreecommitdiffstats
path: root/embed/mozilla
diff options
context:
space:
mode:
Diffstat (limited to 'embed/mozilla')
-rw-r--r--embed/mozilla/EphyHeaderSniffer.cpp20
-rw-r--r--embed/mozilla/FilePicker.cpp31
2 files changed, 25 insertions, 26 deletions
diff --git a/embed/mozilla/EphyHeaderSniffer.cpp b/embed/mozilla/EphyHeaderSniffer.cpp
index 1a14fe962..f2ac46543 100644
--- a/embed/mozilla/EphyHeaderSniffer.cpp
+++ b/embed/mozilla/EphyHeaderSniffer.cpp
@@ -204,18 +204,18 @@ filechooser_response_cb (EphyFileChooser *dialog, gint response, EphyHeaderSniff
filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
- LOG ("Filename %s", filename)
+ if (ephy_gui_confirm_overwrite_file (parent, filename) == FALSE)
+ {
+ g_free (filename);
+ return;
+ }
- if (filename &&
- ephy_gui_confirm_overwrite_file (parent, filename) == TRUE)
+ nsCOMPtr<nsILocalFile> destFile = do_CreateInstance (NS_LOCAL_FILE_CONTRACTID);
+ if (destFile)
{
- nsCOMPtr<nsILocalFile> destFile = do_CreateInstance (NS_LOCAL_FILE_CONTRACTID);
- if (destFile)
- {
- destFile->InitWithNativePath (nsDependentCString (filename));
-
- sniffer->InitiateDownload (destFile);
- }
+ destFile->InitWithNativePath (nsDependentCString (filename));
+
+ sniffer->InitiateDownload (destFile);
}
g_free (filename);
diff --git a/embed/mozilla/FilePicker.cpp b/embed/mozilla/FilePicker.cpp
index 9187915e1..1c9612d93 100644
--- a/embed/mozilla/FilePicker.cpp
+++ b/embed/mozilla/FilePicker.cpp
@@ -378,30 +378,29 @@ NS_IMETHODIMP GFilePicker::Show(PRInt16 *_retval)
gtk_widget_show (GTK_WIDGET (mDialog));
- int response = gtk_dialog_run (GTK_DIALOG (mDialog));
+ int response;
+ char *filename = NULL;
- LOG ("GFilePicker::Show response=%d", response)
-
- switch (response)
+ do
{
- case GTK_RESPONSE_ACCEPT:
- *_retval = nsIFilePicker::returnOK;
- break;
- default:
- *_retval = nsIFilePicker::returnCancel;
- break;
+ response = gtk_dialog_run (GTK_DIALOG (mDialog));
+
+ g_free (filename);
+ filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (mDialog));
+
+ LOG ("GFilePicker::Show response=%d, filename=%s", response, filename)
}
+ while (response == GTK_RESPONSE_ACCEPT &&
+ mMode == nsIFilePicker::modeSave &&
+ !ephy_gui_confirm_overwrite_file (GTK_WIDGET (mDialog), filename));
gtk_widget_hide (GTK_WIDGET (mDialog));
-
- char *filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (mDialog));
- if (filename == NULL)
+ if (response == GTK_RESPONSE_ACCEPT && filename != NULL)
{
- *_retval = nsIFilePicker::returnCancel;
+ *_retval = nsIFilePicker::returnOK;
}
- else if (mMode == nsIFilePicker::modeSave
- && ephy_gui_confirm_overwrite_file (GTK_WIDGET (mDialog), filename) == FALSE)
+ else
{
*_retval = nsIFilePicker::returnCancel;
}