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

Unified Diff: chrome/browser/ui/gtk/infobars/before_translate_infobar_gtk.cc

Issue 7981045: Make infobars ignore button clicks when closing. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 9 years, 3 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/infobars/before_translate_infobar_gtk.cc
===================================================================
--- chrome/browser/ui/gtk/infobars/before_translate_infobar_gtk.cc (revision 102206)
+++ chrome/browser/ui/gtk/infobars/before_translate_infobar_gtk.cc (working copy)
@@ -45,12 +45,12 @@
GtkWidget* button = gtk_button_new_with_label(
l10n_util::GetStringUTF8(IDS_TRANSLATE_INFOBAR_ACCEPT).c_str());
- g_signal_connect(button, "clicked",G_CALLBACK(&OnAcceptPressedThunk), this);
+ g_signal_connect(button, "clicked", G_CALLBACK(&OnAcceptPressedThunk), this);
gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
button = gtk_button_new_with_label(
l10n_util::GetStringUTF8(IDS_TRANSLATE_INFOBAR_DENY).c_str());
- g_signal_connect(button, "clicked",G_CALLBACK(&OnDenyPressedThunk), this);
+ g_signal_connect(button, "clicked", G_CALLBACK(&OnDenyPressedThunk), this);
gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
TranslateInfoBarDelegate* delegate = GetDelegate();
@@ -82,6 +82,8 @@
}
void BeforeTranslateInfoBar::OnLanguageModified(GtkWidget* sender) {
+ if (!owned())
+ return; // We're closing; don't call anything, it might access the owner.
size_t index = GetLanguageComboboxActiveId(GTK_COMBO_BOX(sender));
if (index == GetDelegate()->original_language_index())
return;
@@ -90,18 +92,26 @@
}
void BeforeTranslateInfoBar::OnAcceptPressed(GtkWidget* sender) {
+ if (!owned())
+ return; // We're closing; don't call anything, it might access the owner.
GetDelegate()->Translate();
}
void BeforeTranslateInfoBar::OnDenyPressed(GtkWidget* sender) {
+ if (!owned())
+ return; // We're closing; don't call anything, it might access the owner.
GetDelegate()->TranslationDeclined();
RemoveSelf();
}
void BeforeTranslateInfoBar::OnNeverTranslatePressed(GtkWidget* sender) {
+ if (!owned())
+ return; // We're closing; don't call anything, it might access the owner.
GetDelegate()->NeverTranslatePageLanguage();
}
void BeforeTranslateInfoBar::OnAlwaysTranslatePressed(GtkWidget* sender) {
+ if (!owned())
+ return; // We're closing; don't call anything, it might access the owner.
GetDelegate()->AlwaysTranslatePageLanguage();
}

Powered by Google App Engine
This is Rietveld 408576698