summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorderat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-06 01:36:34 +0000
committerderat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-06 01:36:34 +0000
commitabb4e8e1ecd63ce8d80e7ab514b748c2cbf201b8 (patch)
treebf230f313549707460338acf02f45ef24aab10aa
parentc5281ffa30138fee2700ac283bd1c840ab3b7dd4 (diff)
downloadchromium_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.mm8
-rw-r--r--chrome/browser/gtk/accelerators_gtk.cc1
-rw-r--r--chrome/browser/gtk/reload_button_gtk.cc7
-rw-r--r--chrome/browser/views/reload_button.cc3
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;