Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7965)

Unified Diff: chrome/browser/ui/gtk/tab_modal_confirm_dialog_gtk.cc

Issue 18179004: Dismiss action in tab modal dialogs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix test for Mac Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/gtk/tab_modal_confirm_dialog_gtk.cc
diff --git a/chrome/browser/ui/gtk/tab_modal_confirm_dialog_gtk.cc b/chrome/browser/ui/gtk/tab_modal_confirm_dialog_gtk.cc
index 9b98a307a870839ed86a7c9983a9b2a8cde59416..48c26dbefe3267d819910f4f2c702af9e1c2e6f2 100644
--- a/chrome/browser/ui/gtk/tab_modal_confirm_dialog_gtk.cc
+++ b/chrome/browser/ui/gtk/tab_modal_confirm_dialog_gtk.cc
@@ -32,7 +32,8 @@ TabModalConfirmDialogGtk::TabModalConfirmDialogGtk(
TabModalConfirmDialogDelegate* delegate,
content::WebContents* web_contents)
: delegate_(delegate),
- window_(NULL) {
+ window_(NULL),
+ closing_(false) {
dialog_ = gtk_vbox_new(FALSE, ui::kContentAreaSpacing);
GtkWidget* label = gtk_label_new(
UTF16ToUTF8(delegate->GetMessage()).c_str());
@@ -108,6 +109,10 @@ TabModalConfirmDialogGtk::TabModalConfirmDialogGtk(
}
TabModalConfirmDialogGtk::~TabModalConfirmDialogGtk() {
+ // Provide a disposition in case the dialog was closed without accepting or
+ // cancelling.
+ delegate_->Close();
+
gtk_widget_destroy(dialog_);
}
@@ -120,7 +125,10 @@ void TabModalConfirmDialogGtk::CancelTabModalDialog() {
}
void TabModalConfirmDialogGtk::CloseDialog() {
- gtk_widget_destroy(window_);
+ if (!closing_) {
+ closing_ = true;
+ gtk_widget_destroy(window_);
+ }
}
void TabModalConfirmDialogGtk::OnAccept(GtkWidget* widget) {
« no previous file with comments | « chrome/browser/ui/gtk/tab_modal_confirm_dialog_gtk.h ('k') | chrome/browser/ui/tab_modal_confirm_dialog_browsertest.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698