Index: chrome/browser/ui/panels/panel_browser_titlebar_gtk.cc |
diff --git a/chrome/browser/ui/panels/panel_browser_titlebar_gtk.cc b/chrome/browser/ui/panels/panel_browser_titlebar_gtk.cc |
index d1d80dc45a58f66b0b2c1dfecd9890131a07081c..df7083ce5fe04744b359444a1da9969b5c17bfc3 100644 |
--- a/chrome/browser/ui/panels/panel_browser_titlebar_gtk.cc |
+++ b/chrome/browser/ui/panels/panel_browser_titlebar_gtk.cc |
@@ -83,12 +83,26 @@ void PanelBrowserTitlebarGtk::UpdateMinimizeRestoreButtonVisibility() { |
} |
void PanelBrowserTitlebarGtk::HandleButtonClick(GtkWidget* button) { |
- if (close_button() && close_button()->widget() == button) |
+ if (close_button() && close_button()->widget() == button) { |
browser_window_->panel()->Close(); |
- else if (minimize_button() && minimize_button()->widget() == button) |
- browser_window_->panel()->Minimize(); |
- else if (unminimize_button_.get() && unminimize_button_->widget() == button) |
- browser_window_->panel()->Restore(); |
+ return; |
+ } |
+ |
+ GdkEvent* event = gtk_get_current_event(); |
+ DCHECK(event && event->type == GDK_BUTTON_RELEASE); |
+ |
+ if (minimize_button() && minimize_button()->widget() == button) { |
+ browser_window_->panel()->OnMinimizeButtonClicked( |
+ (event->button.state & GDK_CONTROL_MASK) ? |
+ panel::APPLY_TO_ALL : panel::NO_MODIFIER); |
+ } else if (unminimize_button_.get() && |
+ unminimize_button_->widget() == button) { |
+ browser_window_->panel()->OnRestoreButtonClicked( |
+ (event->button.state & GDK_CONTROL_MASK) ? |
+ panel::APPLY_TO_ALL : panel::NO_MODIFIER); |
+ } |
+ |
+ gdk_event_free(event); |
} |
void PanelBrowserTitlebarGtk::ShowFaviconMenu(GdkEventButton* event) { |