summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrohitrao@chromium.org <rohitrao@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-15 18:54:44 +0000
committerrohitrao@chromium.org <rohitrao@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-15 18:54:44 +0000
commitc63d5746297b26ab376cf537ad89468fae70d357 (patch)
treea71c60ef81d3777b89a8c6dfc8aa0153119a0c49
parentb67881840362e2bd88b73cb0317c5cf1c338847a (diff)
downloadchromium_src-c63d5746297b26ab376cf537ad89468fae70d357.zip
chromium_src-c63d5746297b26ab376cf537ad89468fae70d357.tar.gz
chromium_src-c63d5746297b26ab376cf537ad89468fae70d357.tar.bz2
[Mac] Make the pageup, Shift-pageup, and Option-Shift-pageup keys scroll the underlying webpage when using the findbar.
BUG=http://crbug.com/17421 TEST=Try pressing pageup with focus in the findbar. Review URL: http://codereview.chromium.org/204006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26246 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/cocoa/find_bar_cocoa_controller.mm22
1 files changed, 22 insertions, 0 deletions
diff --git a/chrome/browser/cocoa/find_bar_cocoa_controller.mm b/chrome/browser/cocoa/find_bar_cocoa_controller.mm
index 4b6e89e..15f8ea3 100644
--- a/chrome/browser/cocoa/find_bar_cocoa_controller.mm
+++ b/chrome/browser/cocoa/find_bar_cocoa_controller.mm
@@ -113,6 +113,28 @@
}
return YES;
+ } else if (command == @selector(pageUp:) ||
+ command == @selector(pageUpAndModifySelection:) ||
+ command == @selector(scrollPageUp:) ||
+ command == @selector(pageDown:) ||
+ command == @selector(pageDownAndModifySelection:) ||
+ command == @selector(scrollPageDown:)) {
+ TabContents* contents =
+ findBarBridge_->GetFindBarController()->tab_contents();
+ if (!contents)
+ return NO;
+
+ // Sanity-check to make sure we got a keyboard event.
+ NSEvent* event = [NSApp currentEvent];
+ if ([event type] != NSKeyDown && [event type] != NSKeyUp)
+ return NO;
+
+ // Forward the event to the renderer.
+ // TODO(rohitrao): Should this call -[BaseView keyEvent:]? Is there code in
+ // that function that we want to keep or avoid?
+ RenderViewHost* render_view_host = contents->render_view_host();
+ render_view_host->ForwardKeyboardEvent(NativeWebKeyboardEvent(event));
+ return YES;
}
return NO;