summaryrefslogtreecommitdiffstats
path: root/chrome/browser/gtk
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-01 19:32:31 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-01 19:32:31 +0000
commitfefbdf069fe3034c7a04bbdfaaf965ccc882a459 (patch)
treeba62c382ec24e35064500b61dccbafc6f1edc33b /chrome/browser/gtk
parent4ab8cebe271e942522ddf739102e6211c1325565 (diff)
downloadchromium_src-fefbdf069fe3034c7a04bbdfaaf965ccc882a459.zip
chromium_src-fefbdf069fe3034c7a04bbdfaaf965ccc882a459.tar.gz
chromium_src-fefbdf069fe3034c7a04bbdfaaf965ccc882a459.tar.bz2
GTK: Make page and app menus shortcut control flow match windows more closely.
BUG=33471 TEST=alt+f, alt+e Review URL: http://codereview.chromium.org/551214 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37725 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/gtk')
-rw-r--r--chrome/browser/gtk/accelerators_gtk.cc2
-rw-r--r--chrome/browser/gtk/browser_toolbar_gtk.cc32
-rw-r--r--chrome/browser/gtk/browser_toolbar_gtk.h7
-rw-r--r--chrome/browser/gtk/browser_window_gtk.cc8
4 files changed, 15 insertions, 34 deletions
diff --git a/chrome/browser/gtk/accelerators_gtk.cc b/chrome/browser/gtk/accelerators_gtk.cc
index 3591a4c..b7655d0 100644
--- a/chrome/browser/gtk/accelerators_gtk.cc
+++ b/chrome/browser/gtk/accelerators_gtk.cc
@@ -162,6 +162,8 @@ const struct AcceleratorMapping {
{ XF86XK_History, IDC_SHOW_HISTORY, GdkModifierType(0) },
{ GDK_q, IDC_EXIT, GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) },
{ GDK_s, IDC_SAVE_PAGE, GDK_CONTROL_MASK },
+ { GDK_e, IDC_SHOW_PAGE_MENU, GDK_MOD1_MASK },
+ { GDK_f, IDC_SHOW_APP_MENU, GDK_MOD1_MASK },
};
} // namespace
diff --git a/chrome/browser/gtk/browser_toolbar_gtk.cc b/chrome/browser/gtk/browser_toolbar_gtk.cc
index 3a6debd..4a97b98 100644
--- a/chrome/browser/gtk/browser_toolbar_gtk.cc
+++ b/chrome/browser/gtk/browser_toolbar_gtk.cc
@@ -226,20 +226,6 @@ void BrowserToolbarGtk::Init(Profile* profile,
gtk_box_pack_start(GTK_BOX(toolbar_), menus_hbox_, FALSE, FALSE, 0);
- // Page and app menu accelerators.
- GtkAccelGroup* accel_group = gtk_accel_group_new();
- gtk_window_add_accel_group(top_level_window, accel_group);
- // Drop the initial ref on |accel_group| so |window_| will own it.
- g_object_unref(accel_group);
- // I would use "popup-menu" here, but GTK complains. I would use "activate",
- // but the docs say never to connect to that signal.
- gtk_widget_add_accelerator(page_menu, "clicked", accel_group,
- GDK_e, GDK_MOD1_MASK,
- static_cast<GtkAccelFlags>(0));
- gtk_widget_add_accelerator(chrome_menu, "clicked", accel_group,
- GDK_f, GDK_MOD1_MASK,
- static_cast<GtkAccelFlags>(0));
-
if (ShouldOnlyShowLocation()) {
gtk_widget_show(event_box_);
gtk_widget_show(alignment_);
@@ -300,6 +286,14 @@ void BrowserToolbarGtk::UpdateForBookmarkBarVisibility(
kLeftRightPadding, kLeftRightPadding);
}
+void BrowserToolbarGtk::ShowPageMenu() {
+ PopupForButton(page_menu_button_.get());
+}
+
+void BrowserToolbarGtk::ShowAppMenu() {
+ PopupForButton(app_menu_button_.get());
+}
+
// CommandUpdater::CommandObserver ---------------------------------------------
void BrowserToolbarGtk::EnabledStateChangedForCommand(int id, bool enabled) {
@@ -512,8 +506,6 @@ GtkWidget* BrowserToolbarGtk::BuildToolbarMenuButton(
gtk_widget_set_tooltip_text(button, localized_tooltip.c_str());
g_signal_connect(button, "button-press-event",
G_CALLBACK(OnMenuButtonPressEvent), this);
- g_signal_connect(button, "clicked",
- G_CALLBACK(OnMenuClicked), this);
GTK_WIDGET_UNSET_FLAGS(button, GTK_CAN_FOCUS);
return button;
@@ -662,14 +654,6 @@ gboolean BrowserToolbarGtk::OnMenuButtonPressEvent(GtkWidget* button,
}
// static
-gboolean BrowserToolbarGtk::OnMenuClicked(GtkWidget* button,
- BrowserToolbarGtk* toolbar) {
- toolbar->PopupForButton(button);
-
- return TRUE;
-}
-
-// static
void BrowserToolbarGtk::OnDragDataReceived(GtkWidget* widget,
GdkDragContext* drag_context, gint x, gint y,
GtkSelectionData* data, guint info, guint time,
diff --git a/chrome/browser/gtk/browser_toolbar_gtk.h b/chrome/browser/gtk/browser_toolbar_gtk.h
index 4088df2..33480cb 100644
--- a/chrome/browser/gtk/browser_toolbar_gtk.h
+++ b/chrome/browser/gtk/browser_toolbar_gtk.h
@@ -85,6 +85,9 @@ class BrowserToolbarGtk : public CommandUpdater::CommandObserver,
// is in floating mode. Otherwise the bookmark bar will paint it for us.
void UpdateForBookmarkBarVisibility(bool show_bottom_padding);
+ void ShowPageMenu();
+ void ShowAppMenu();
+
// Overridden from CommandUpdater::CommandObserver:
virtual void EnabledStateChangedForCommand(int id, bool enabled);
@@ -162,10 +165,6 @@ class BrowserToolbarGtk : public CommandUpdater::CommandObserver,
GdkEventButton* event,
BrowserToolbarGtk* toolbar);
- // Gtk callback used when a hotkey activates the menu buttons.
- static gboolean OnMenuClicked(GtkWidget* button,
- BrowserToolbarGtk* toolbar);
-
// Used for drags onto home button.
static void OnDragDataReceived(GtkWidget* widget,
GdkDragContext* drag_context,
diff --git a/chrome/browser/gtk/browser_window_gtk.cc b/chrome/browser/gtk/browser_window_gtk.cc
index f0982d4..6bbc700 100644
--- a/chrome/browser/gtk/browser_window_gtk.cc
+++ b/chrome/browser/gtk/browser_window_gtk.cc
@@ -919,15 +919,11 @@ void BrowserWindowGtk::ShowPageInfo(Profile* profile,
}
void BrowserWindowGtk::ShowPageMenu() {
- // On Windows, this is used to show the page menu for a keyboard accelerator
- // (Alt+e). We connect the accelerator directly to the widget in
- // BrowserToolbarGtk.
+ toolbar_->ShowPageMenu();
}
void BrowserWindowGtk::ShowAppMenu() {
- // On Windows, this is used to show the page menu for a keyboard accelerator
- // (Alt+f). We connect the accelerator directly to the widget in
- // BrowserToolbarGtk.
+ toolbar_->ShowAppMenu();
}
bool BrowserWindowGtk::PreHandleKeyboardEvent(