diff options
author | derat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-06 01:36:34 +0000 |
---|---|---|
committer | derat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-06 01:36:34 +0000 |
commit | abb4e8e1ecd63ce8d80e7ab514b748c2cbf201b8 (patch) | |
tree | bf230f313549707460338acf02f45ef24aab10aa | |
parent | c5281ffa30138fee2700ac283bd1c840ab3b7dd4 (diff) | |
download | chromium_src-abb4e8e1ecd63ce8d80e7ab514b748c2cbf201b8.zip chromium_src-abb4e8e1ecd63ce8d80e7ab514b748c2cbf201b8.tar.gz chromium_src-abb4e8e1ecd63ce8d80e7ab514b748c2cbf201b8.tar.bz2 |
Make reload accelerators more consistent across platforms.
On Windows and Linux (both Views and GTK+), this makes
Ctrl-R, F5, and regular clicks on the reload button do
regular reloads, while Ctrl-Shift-R, Shift-F5, Control-F5,
and holding Shift or Control while clicking the button all
bypass the cache.
It does the same for the reload button on Mac, but I'm not
modifying any Mac keyboard shortcuts in this change (it
looks like Command-Shift-R already bypasses the cache).
I've updated http://crbug.com/38356 to mention that when
the F5 shortcut is added to Mac, the cache-bypassing
modifiers should also be supported.
BUG=47383
TEST=none
Review URL: http://codereview.chromium.org/2876008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55175 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/cocoa/browser_window_controller.mm | 8 | ||||
-rw-r--r-- | chrome/browser/gtk/accelerators_gtk.cc | 1 | ||||
-rw-r--r-- | chrome/browser/gtk/reload_button_gtk.cc | 7 | ||||
-rw-r--r-- | chrome/browser/views/reload_button.cc | 3 |
4 files changed, 9 insertions, 10 deletions
diff --git a/chrome/browser/cocoa/browser_window_controller.mm b/chrome/browser/cocoa/browser_window_controller.mm index d4186b1..19b584d 100644 --- a/chrome/browser/cocoa/browser_window_controller.mm +++ b/chrome/browser/cocoa/browser_window_controller.mm @@ -935,11 +935,11 @@ DCHECK([targetController isKindOfClass:[BrowserWindowController class]]); NSInteger command = [sender tag]; NSUInteger modifierFlags = [[NSApp currentEvent] modifierFlags]; - if ((command == IDC_RELOAD) && (modifierFlags & NSShiftKeyMask)) { + if ((command == IDC_RELOAD) && + (modifierFlags & (NSShiftKeyMask | NSControlKeyMask))) { command = IDC_RELOAD_IGNORING_CACHE; - // Mask off shift so it isn't interpreted as affecting the disposition - // below. - modifierFlags &= ~NSShiftKeyMask; + // Mask off Shift and Control so they don't affect the disposition below. + modifierFlags &= ~(NSShiftKeyMask | NSControlKeyMask); } if (![[sender window] isMainWindow]) { // Remove the command key from the flags, it means "keep the window in diff --git a/chrome/browser/gtk/accelerators_gtk.cc b/chrome/browser/gtk/accelerators_gtk.cc index 3bd670e..f73d03a 100644 --- a/chrome/browser/gtk/accelerators_gtk.cc +++ b/chrome/browser/gtk/accelerators_gtk.cc @@ -123,6 +123,7 @@ const struct AcceleratorMapping { { GDK_r, IDC_RELOAD_IGNORING_CACHE, GdkModifierType(GDK_CONTROL_MASK|GDK_SHIFT_MASK) }, { GDK_F5, IDC_RELOAD, GdkModifierType(0) }, + { GDK_F5, IDC_RELOAD_IGNORING_CACHE, GDK_CONTROL_MASK }, { GDK_F5, IDC_RELOAD_IGNORING_CACHE, GDK_SHIFT_MASK }, { XF86XK_Reload, IDC_RELOAD, GdkModifierType(0) }, { XF86XK_Refresh, IDC_RELOAD, GdkModifierType(0) }, diff --git a/chrome/browser/gtk/reload_button_gtk.cc b/chrome/browser/gtk/reload_button_gtk.cc index ca60962..d679b84 100644 --- a/chrome/browser/gtk/reload_button_gtk.cc +++ b/chrome/browser/gtk/reload_button_gtk.cc @@ -127,11 +127,10 @@ void ReloadButtonGtk::OnClicked(GtkWidget* sender) { GdkModifierType modifier_state; gtk_get_current_event_state(&modifier_state); guint modifier_state_uint = modifier_state; - if (modifier_state_uint & GDK_SHIFT_MASK) { + if (modifier_state_uint & (GDK_SHIFT_MASK | GDK_CONTROL_MASK)) { command = IDC_RELOAD_IGNORING_CACHE; - // Mask off shift so it isn't interpreted as affecting the disposition - // below. - modifier_state_uint &= ~GDK_SHIFT_MASK; + // Mask off Shift and Control so they don't affect the disposition below. + modifier_state_uint &= ~(GDK_SHIFT_MASK | GDK_CONTROL_MASK); } else { command = IDC_RELOAD; } diff --git a/chrome/browser/views/reload_button.cc b/chrome/browser/views/reload_button.cc index 5ebd9bd..9bdf42e 100644 --- a/chrome/browser/views/reload_button.cc +++ b/chrome/browser/views/reload_button.cc @@ -59,8 +59,7 @@ void ReloadButton::ButtonPressed(views::Button* button, int flags = mouse_event_flags(); if (event.IsShiftDown() || event.IsControlDown()) { command = IDC_RELOAD_IGNORING_CACHE; - // Mask off shift/ctrl so they aren't interpreted as affecting the - // disposition below. + // Mask off Shift and Control so they don't affect the disposition below. flags &= ~(views::Event::EF_SHIFT_DOWN | views::Event::EF_CONTROL_DOWN); } else { command = IDC_RELOAD; |