diff options
-rw-r--r-- | data/epiphany.schemas.in | 11 | ||||
-rw-r--r-- | lib/ephy-prefs.h | 1 | ||||
-rw-r--r-- | src/ephy-window.c | 17 |
3 files changed, 23 insertions, 6 deletions
diff --git a/data/epiphany.schemas.in b/data/epiphany.schemas.in index 9f2211b52..4d3331e8d 100644 --- a/data/epiphany.schemas.in +++ b/data/epiphany.schemas.in @@ -508,6 +508,17 @@ <long>Hide or show the downloads window. When hidden, a notification will be shown when new downloads are started.</long> </locale> </schema> + <schema> + <key>/schemas/apps/epiphany/dialogs/warn_on_close_unsubmitted_data</key> + <applyto>/apps/epiphany/dialogs/warn_on_close_unsubmitted_data</applyto> + <owner>epiphany</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short></short> + <long></long> + </locale> + </schema> </schemalist> </gconfschemafile> diff --git a/lib/ephy-prefs.h b/lib/ephy-prefs.h index 6331757dd..f75336d9f 100644 --- a/lib/ephy-prefs.h +++ b/lib/ephy-prefs.h @@ -38,6 +38,7 @@ G_BEGIN_DECLS #define CONF_DESKTOP_IS_HOME_DIR "/apps/nautilus/preferences/desktop_is_home_dir" #define CONF_NETWORK_MANAGED "/apps/epiphany/general/managed_network" #define CONF_DOWNLOADS_HIDDEN "/apps/epiphany/dialogs/downloads_hidden" +#define CONF_WARN_ON_CLOSE_UNSUBMITTED_DATA "/apps/epiphany/dialogs/warn_on_close_unsubmitted_data" /* i18n pref */ #define CONF_GECKO_ENABLE_PANGO "/apps/epiphany/web/enable_pango" diff --git a/src/ephy-window.c b/src/ephy-window.c index a8c696dd9..93f9f16f7 100644 --- a/src/ephy-window.c +++ b/src/ephy-window.c @@ -547,15 +547,20 @@ construct_confirm_close_dialog (EphyWindow *window) static gboolean confirm_close_with_modified_forms (EphyWindow *window) { - GtkWidget *dialog; - int response; + if (eel_gconf_get_boolean (CONF_WARN_ON_CLOSE_UNSUBMITTED_DATA)) + { + GtkWidget *dialog; + int response; - dialog = construct_confirm_close_dialog (window); - response = gtk_dialog_run (GTK_DIALOG (dialog)); + dialog = construct_confirm_close_dialog (window); + response = gtk_dialog_run (GTK_DIALOG (dialog)); - gtk_widget_destroy (dialog); + gtk_widget_destroy (dialog); - return response == GTK_RESPONSE_ACCEPT; + return response == GTK_RESPONSE_ACCEPT; + } + + return TRUE; } static void |