aboutsummaryrefslogtreecommitdiffstats
path: root/embed/mozilla/FilePicker.cpp
diff options
context:
space:
mode:
authorChristian Persch <chpe@cvs.gnome.org>2004-04-10 05:40:32 +0800
committerChristian Persch <chpe@src.gnome.org>2004-04-10 05:40:32 +0800
commit4a908200fdd1064924da73f61a64f61d628dae96 (patch)
tree4f0c3c141564bbc1e392631b128a654f3551950a /embed/mozilla/FilePicker.cpp
parent23b63c1cd2fafb38cdbb404577e2639570118d8b (diff)
downloadgsoc2013-epiphany-4a908200fdd1064924da73f61a64f61d628dae96.tar
gsoc2013-epiphany-4a908200fdd1064924da73f61a64f61d628dae96.tar.gz
gsoc2013-epiphany-4a908200fdd1064924da73f61a64f61d628dae96.tar.bz2
gsoc2013-epiphany-4a908200fdd1064924da73f61a64f61d628dae96.tar.lz
gsoc2013-epiphany-4a908200fdd1064924da73f61a64f61d628dae96.tar.xz
gsoc2013-epiphany-4a908200fdd1064924da73f61a64f61d628dae96.tar.zst
gsoc2013-epiphany-4a908200fdd1064924da73f61a64f61d628dae96.zip
Don't quit the filechooser when selecting "No" from the confirm- overwrite
2004-04-09 Christian Persch <chpe@cvs.gnome.org> * embed/mozilla/EphyHeaderSniffer.cpp: * embed/mozilla/FilePicker.cpp: Don't quit the filechooser when selecting "No" from the confirm- overwrite dialoge. Fixes bug #139400. * lib/ephy-gui.c: (ephy_gui_confirm_overwrite_file): Convert the filename to UTF-8 before showing it in the confirm dialogue.
Diffstat (limited to 'embed/mozilla/FilePicker.cpp')
-rw-r--r--embed/mozilla/FilePicker.cpp31
1 files changed, 15 insertions, 16 deletions
diff --git a/embed/mozilla/FilePicker.cpp b/embed/mozilla/FilePicker.cpp
index eddb73d5f..42d4b3b33 100644
--- a/embed/mozilla/FilePicker.cpp
+++ b/embed/mozilla/FilePicker.cpp
@@ -379,30 +379,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;
}