| Index: chrome/browser/ui/gtk/action_box_button_gtk.cc
|
| diff --git a/chrome/browser/ui/gtk/action_box_button_gtk.cc b/chrome/browser/ui/gtk/action_box_button_gtk.cc
|
| index d7e68697473fae2ec3128c72ec07939d146716d8..4732fe5ae40a0c476117f323117e4e04c4f574c6 100644
|
| --- a/chrome/browser/ui/gtk/action_box_button_gtk.cc
|
| +++ b/chrome/browser/ui/gtk/action_box_button_gtk.cc
|
| @@ -6,9 +6,11 @@
|
|
|
| #include <gtk/gtk.h>
|
|
|
| +#include "chrome/browser/extensions/extension_system.h"
|
| #include "chrome/browser/ui/browser.h"
|
| #include "chrome/browser/ui/gtk/custom_button.h"
|
| #include "chrome/browser/ui/gtk/view_id_util.h"
|
| +#include "chrome/browser/ui/toolbar/action_box_menu_model.h"
|
| #include "chrome/browser/ui/view_ids.h"
|
| #include "grit/generated_resources.h"
|
| #include "grit/theme_resources.h"
|
| @@ -23,8 +25,8 @@ ActionBoxButtonGtk::ActionBoxButtonGtk(Browser* browser) : browser_(browser) {
|
| gtk_widget_set_tooltip_text(widget(),
|
| l10n_util::GetStringUTF8(IDS_TOOLTIP_ACTION_BOX_BUTTON).c_str());
|
|
|
| - g_signal_connect(widget(), "clicked",
|
| - G_CALLBACK(OnClickThunk), this);
|
| + g_signal_connect(widget(), "button-press-event",
|
| + G_CALLBACK(OnButtonPressThunk), this);
|
|
|
| ViewIDUtil::SetID(widget(), VIEW_ID_ACTION_BOX_BUTTON);
|
| }
|
| @@ -32,11 +34,24 @@ ActionBoxButtonGtk::ActionBoxButtonGtk(Browser* browser) : browser_(browser) {
|
| ActionBoxButtonGtk::~ActionBoxButtonGtk() {
|
| }
|
|
|
| +bool ActionBoxButtonGtk::AlwaysShowIconForCmd(int command_id) const {
|
| + return true;
|
| +}
|
| +
|
| GtkWidget* ActionBoxButtonGtk::widget() {
|
| return button_->widget();
|
| }
|
|
|
| -void ActionBoxButtonGtk::OnClick(GtkWidget* widget) {
|
| - // TODO(mpcomplete): show the menu. See back_forward_button_gtk for menu
|
| - // stuff.
|
| +gboolean ActionBoxButtonGtk::OnButtonPress(GtkWidget* widget,
|
| + GdkEventButton* event) {
|
| + if (event->button != 1)
|
| + return FALSE;
|
| +
|
| + ExtensionService* extension_service = extensions::ExtensionSystem::Get(
|
| + browser_->profile())->extension_service();
|
| + model_.reset(new ActionBoxMenuModel(browser_, extension_service));
|
| + menu_.reset(new MenuGtk(this, model_.get()));
|
| + menu_->PopupForWidget(button_->widget(), event->button, event->time);
|
| +
|
| + return FALSE;
|
| }
|
|
|