diff options
author | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-01 19:32:31 +0000 |
---|---|---|
committer | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-01 19:32:31 +0000 |
commit | fefbdf069fe3034c7a04bbdfaaf965ccc882a459 (patch) | |
tree | ba62c382ec24e35064500b61dccbafc6f1edc33b /chrome/browser/gtk | |
parent | 4ab8cebe271e942522ddf739102e6211c1325565 (diff) | |
download | chromium_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.cc | 2 | ||||
-rw-r--r-- | chrome/browser/gtk/browser_toolbar_gtk.cc | 32 | ||||
-rw-r--r-- | chrome/browser/gtk/browser_toolbar_gtk.h | 7 | ||||
-rw-r--r-- | chrome/browser/gtk/browser_window_gtk.cc | 8 |
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( |