diff options
author | finnur@chromium.org <finnur@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-08 23:38:16 +0000 |
---|---|---|
committer | finnur@chromium.org <finnur@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-08 23:38:16 +0000 |
commit | 05d47875219edd6f25490d8a878021ff2d564170 (patch) | |
tree | 88fe8a3aaa158da3dd6acbb20258ab604a93ce56 /chrome/renderer | |
parent | 43101c0334b3297868085e661a2e92f935434a5e (diff) | |
download | chromium_src-05d47875219edd6f25490d8a878021ff2d564170.zip chromium_src-05d47875219edd6f25490d8a878021ff2d564170.tar.gz chromium_src-05d47875219edd6f25490d8a878021ff2d564170.tar.bz2 |
When the Find bar has focus it eats keypresses such as PageUp, PageDown and Up and Down arrow keys. It doesn't need to - instead the page should scroll even if focus is on the Find bar.
This patch forwards those selected keypresses to the page for its perusal.
Known issues: Just like Firefox, the page doesn't scroll if it has frames.
SONG=I like to fixit fixit. I like to fixit fixit.
BUG=7079
TEST=Open FindInPage on a webpage that has a vertical scrollbar. Press Down, Up, PageDown and PageUp and the page should scroll accordingly. Make sure no ding is heard while doing so. Also make sure this works if focus is on a textfield/textarea when you press Ctrl+F.
Review URL: http://codereview.chromium.org/62129
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13389 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer')
-rw-r--r-- | chrome/renderer/render_view.cc | 8 | ||||
-rw-r--r-- | chrome/renderer/render_view.h | 4 | ||||
-rw-r--r-- | chrome/renderer/render_widget.cc | 2 | ||||
-rw-r--r-- | chrome/renderer/render_widget.h | 10 |
4 files changed, 16 insertions, 8 deletions
diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc index e76d187..d0b8d28 100644 --- a/chrome/renderer/render_view.cc +++ b/chrome/renderer/render_view.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -441,6 +441,7 @@ void RenderView::OnMessageReceived(const IPC::Message& message) { IPC_MESSAGE_HANDLER(ViewMsg_MoveOrResizeStarted, OnMoveOrResizeStarted) IPC_MESSAGE_HANDLER(ViewMsg_ExtensionResponse, OnExtensionResponse) IPC_MESSAGE_HANDLER(ViewMsg_RequestSelectionText, OnRequestSelectionText) + IPC_MESSAGE_HANDLER(ViewMsg_ClearFocusedNode, OnClearFocusedNode) // Have the super handle all other messages. IPC_MESSAGE_UNHANDLED(RenderWidget::OnMessageReceived(message)) @@ -3011,6 +3012,11 @@ void RenderView::OnResize(const gfx::Size& new_size, RenderWidget::OnResize(new_size, resizer_rect); } +void RenderView::OnClearFocusedNode() { + if (webview()) + webview()->ClearFocusedNode(); +} + void RenderView::SendExtensionRequest(const std::string& name, const std::string& args, int callback_id, diff --git a/chrome/renderer/render_view.h b/chrome/renderer/render_view.h index 6a499ad..7e8e818 100644 --- a/chrome/renderer/render_view.h +++ b/chrome/renderer/render_view.h @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -385,6 +385,8 @@ class RenderView : public RenderWidget, void GetAudioVolume(int stream_id); void SetAudioVolume(int stream_id, double left, double right); + void OnClearFocusedNode(); + void SendExtensionRequest(const std::string& name, const std::string& args, int callback_id, WebFrame* web_frame); void OnExtensionResponse(int callback_id, const std::string& response); diff --git a/chrome/renderer/render_widget.cc b/chrome/renderer/render_widget.cc index 9b05e19..81421d1 100644 --- a/chrome/renderer/render_widget.cc +++ b/chrome/renderer/render_widget.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chrome/renderer/render_widget.h b/chrome/renderer/render_widget.h index 7ee2c04..84eb9b2 100644 --- a/chrome/renderer/render_widget.h +++ b/chrome/renderer/render_widget.h @@ -1,9 +1,9 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_RENDERER_RENDER_WIDGET_H__ -#define CHROME_RENDERER_RENDER_WIDGET_H__ +#ifndef CHROME_RENDERER_RENDER_WIDGET_H_ +#define CHROME_RENDERER_RENDER_WIDGET_H_ #include <vector> #include "base/basictypes.h" @@ -265,7 +265,7 @@ class RenderWidget : public IPC::Channel::Listener, // Holds all the needed plugin window moves for a scroll. std::vector<WebPluginGeometry> plugin_window_moves_; - DISALLOW_EVIL_CONSTRUCTORS(RenderWidget); + DISALLOW_COPY_AND_ASSIGN(RenderWidget); }; -#endif // CHROME_RENDERER_RENDER_WIDGET_H__ +#endif // CHROME_RENDERER_RENDER_WIDGET_H_ |