summaryrefslogtreecommitdiffstats
path: root/chrome/browser/renderer_host
diff options
context:
space:
mode:
authorsky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-29 19:16:14 +0000
committersky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-29 19:16:14 +0000
commit484ae5911b6176cad930d9242f8f91914a8165db (patch)
tree8f8f01cc48899941cf440c987b9a8a500df2cca1 /chrome/browser/renderer_host
parent3e207a886f635cca368921072cf258070cdbe216 (diff)
downloadchromium_src-484ae5911b6176cad930d9242f8f91914a8165db.zip
chromium_src-484ae5911b6176cad930d9242f8f91914a8165db.tar.gz
chromium_src-484ae5911b6176cad930d9242f8f91914a8165db.tar.bz2
Couple of match preview changes.
. Commit the match preview on mouse up for instant results. This is needed as instant results may shift up during the commit. If we didn't do this it could mean the mouse up event appears over a different item then the mouse went down on. . Makes match preview revert if focus goes to the page and wasn't initiated by a mouse event. . Makes transition from about:crash to valid page not commit the match preview. . Changes setOmniboxDimensions to setDropdownDimensions. BUG=54833 56179 TEST=none Review URL: http://codereview.chromium.org/3531001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60969 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/renderer_host')
-rw-r--r--chrome/browser/renderer_host/render_view_host.cc16
-rw-r--r--chrome/browser/renderer_host/render_view_host.h2
-rw-r--r--chrome/browser/renderer_host/render_view_host_delegate.h5
-rw-r--r--chrome/browser/renderer_host/render_widget_host.cc3
-rw-r--r--chrome/browser/renderer_host/render_widget_host.h4
-rw-r--r--chrome/browser/renderer_host/render_widget_host_view_win.cc7
-rw-r--r--chrome/browser/renderer_host/render_widget_host_view_win.h5
7 files changed, 38 insertions, 4 deletions
diff --git a/chrome/browser/renderer_host/render_view_host.cc b/chrome/browser/renderer_host/render_view_host.cc
index ebbb396..8d31005 100644
--- a/chrome/browser/renderer_host/render_view_host.cc
+++ b/chrome/browser/renderer_host/render_view_host.cc
@@ -650,6 +650,14 @@ void RenderViewHost::GotFocus() {
view->GotFocus();
}
+void RenderViewHost::LostCapture() {
+ RenderWidgetHost::LostCapture();
+
+ RenderViewHostDelegate::View* view = delegate_->GetViewDelegate();
+ if (view)
+ view->LostCapture();
+}
+
void RenderViewHost::SetInitialFocus(bool reverse) {
Send(new ViewMsg_SetInitialFocus(routing_id(), reverse));
}
@@ -1826,6 +1834,8 @@ void RenderViewHost::ForwardMouseEvent(
if (ignore_input_events() && delegate_)
delegate_->OnIgnoredUIEvent();
break;
+ case WebInputEvent::MouseUp:
+ view->HandleMouseUp();
default:
// For now, we don't care about the rest.
break;
@@ -1833,6 +1843,12 @@ void RenderViewHost::ForwardMouseEvent(
}
}
+void RenderViewHost::OnMouseActivate() {
+ RenderViewHostDelegate::View* view = delegate_->GetViewDelegate();
+ if (view)
+ view->HandleMouseActivate();
+}
+
void RenderViewHost::ForwardKeyboardEvent(
const NativeWebKeyboardEvent& key_event) {
if (ignore_input_events()) {
diff --git a/chrome/browser/renderer_host/render_view_host.h b/chrome/browser/renderer_host/render_view_host.h
index 8633b0c..82277a3 100644
--- a/chrome/browser/renderer_host/render_view_host.h
+++ b/chrome/browser/renderer_host/render_view_host.h
@@ -425,7 +425,9 @@ class RenderViewHost : public RenderWidgetHost {
virtual bool IsRenderView() const { return true; }
virtual void OnMessageReceived(const IPC::Message& msg);
virtual void GotFocus();
+ virtual void LostCapture();
virtual void ForwardMouseEvent(const WebKit::WebMouseEvent& mouse_event);
+ virtual void OnMouseActivate();
virtual void ForwardKeyboardEvent(const NativeWebKeyboardEvent& key_event);
virtual void ForwardEditCommand(const std::string& name,
const std::string& value);
diff --git a/chrome/browser/renderer_host/render_view_host_delegate.h b/chrome/browser/renderer_host/render_view_host_delegate.h
index b2911c6..2f0f5b4 100644
--- a/chrome/browser/renderer_host/render_view_host_delegate.h
+++ b/chrome/browser/renderer_host/render_view_host_delegate.h
@@ -165,6 +165,9 @@ class RenderViewHostDelegate {
// retrieved by doing a Shift-Tab.
virtual void TakeFocus(bool reverse) = 0;
+ // Notification that the view has lost capture.
+ virtual void LostCapture() = 0;
+
// The page wants the hosting window to activate/deactivate itself (it
// called the JavaScript window.focus()/blur() method).
virtual void Activate() = 0;
@@ -188,6 +191,8 @@ class RenderViewHostDelegate {
virtual void HandleMouseMove() = 0;
virtual void HandleMouseDown() = 0;
virtual void HandleMouseLeave() = 0;
+ virtual void HandleMouseUp() = 0;
+ virtual void HandleMouseActivate() = 0;
// The contents' preferred size changed.
virtual void UpdatePreferredSize(const gfx::Size& pref_size) = 0;
diff --git a/chrome/browser/renderer_host/render_widget_host.cc b/chrome/browser/renderer_host/render_widget_host.cc
index 6153331..eb2fc33 100644
--- a/chrome/browser/renderer_host/render_widget_host.cc
+++ b/chrome/browser/renderer_host/render_widget_host.cc
@@ -437,6 +437,9 @@ void RenderWidgetHost::ForwardMouseEvent(const WebMouseEvent& mouse_event) {
ForwardInputEvent(mouse_event, sizeof(WebMouseEvent), false);
}
+void RenderWidgetHost::OnMouseActivate() {
+}
+
void RenderWidgetHost::ForwardWheelEvent(
const WebMouseWheelEvent& wheel_event) {
if (ignore_input_events_ || process_->ignore_input_events())
diff --git a/chrome/browser/renderer_host/render_widget_host.h b/chrome/browser/renderer_host/render_widget_host.h
index 390cc31..c34bece 100644
--- a/chrome/browser/renderer_host/render_widget_host.h
+++ b/chrome/browser/renderer_host/render_widget_host.h
@@ -201,7 +201,7 @@ class RenderWidgetHost : public IPC::Channel::Listener,
// Tells the renderer it got/lost focus.
void Focus();
void Blur();
- void LostCapture();
+ virtual void LostCapture();
// Tells us whether the page is rendered directly via the GPU process.
bool is_gpu_rendering_active() { return is_gpu_rendering_active_; }
@@ -270,6 +270,8 @@ class RenderWidgetHost : public IPC::Channel::Listener,
// Forwards the given message to the renderer. These are called by the view
// when it has received a message.
virtual void ForwardMouseEvent(const WebKit::WebMouseEvent& mouse_event);
+ // Called when a mouse click activates the renderer.
+ virtual void OnMouseActivate();
void ForwardWheelEvent(const WebKit::WebMouseWheelEvent& wheel_event);
virtual void ForwardKeyboardEvent(const NativeWebKeyboardEvent& key_event);
virtual void ForwardEditCommand(const std::string& name,
diff --git a/chrome/browser/renderer_host/render_widget_host_view_win.cc b/chrome/browser/renderer_host/render_widget_host_view_win.cc
index 2640163..deccc0a 100644
--- a/chrome/browser/renderer_host/render_widget_host_view_win.cc
+++ b/chrome/browser/renderer_host/render_widget_host_view_win.cc
@@ -1446,7 +1446,9 @@ LRESULT RenderWidgetHostViewWin::OnWheelEvent(UINT message, WPARAM wparam,
return 0;
}
-LRESULT RenderWidgetHostViewWin::OnMouseActivate(UINT, WPARAM, LPARAM,
+LRESULT RenderWidgetHostViewWin::OnMouseActivate(UINT message,
+ WPARAM wparam,
+ LPARAM lparam,
BOOL& handled) {
if (!IsActivatable())
return MA_NOACTIVATE;
@@ -1465,7 +1467,7 @@ LRESULT RenderWidgetHostViewWin::OnMouseActivate(UINT, WPARAM, LPARAM,
::GetCursorPos(&cursor_pos);
::ScreenToClient(m_hWnd, &cursor_pos);
HWND child_window = ::RealChildWindowFromPoint(m_hWnd, cursor_pos);
- if (::IsWindow(child_window)) {
+ if (::IsWindow(child_window) && child_window != m_hWnd) {
if (win_util::GetClassName(child_window) == kWrapperNativeWindowClassName)
child_window = ::GetWindow(child_window, GW_CHILD);
@@ -1474,6 +1476,7 @@ LRESULT RenderWidgetHostViewWin::OnMouseActivate(UINT, WPARAM, LPARAM,
}
}
handled = FALSE;
+ render_widget_host_->OnMouseActivate();
return MA_ACTIVATE;
}
diff --git a/chrome/browser/renderer_host/render_widget_host_view_win.h b/chrome/browser/renderer_host/render_widget_host_view_win.h
index 87dd687..ff9a472 100644
--- a/chrome/browser/renderer_host/render_widget_host_view_win.h
+++ b/chrome/browser/renderer_host/render_widget_host_view_win.h
@@ -195,7 +195,10 @@ class RenderWidgetHostViewWin
UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled);
LRESULT OnWheelEvent(
UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled);
- LRESULT OnMouseActivate(UINT, WPARAM, LPARAM, BOOL& handled);
+ LRESULT OnMouseActivate(UINT message,
+ WPARAM wparam,
+ LPARAM lparam,
+ BOOL& handled);
// Handle MSAA requests for accessibility information.
LRESULT OnGetObject(UINT message, WPARAM wparam, LPARAM lparam,
BOOL& handled);