Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(37)

Side by Side Diff: chrome/browser/render_widget_host_view_win.cc

Issue 17455: Autofill popup dismissed when page loses focus (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/render_widget_host_view_win.h ('k') | chrome/browser/resource_message_filter.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/render_widget_host_view_win.h" 5 #include "chrome/browser/render_widget_host_view_win.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/gfx/gdi_util.h" 8 #include "base/gfx/gdi_util.h"
9 #include "base/gfx/rect.h" 9 #include "base/gfx/rect.h"
10 #include "base/histogram.h" 10 #include "base/histogram.h"
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 cursor_is_custom_(false), 71 cursor_is_custom_(false),
72 track_mouse_leave_(false), 72 track_mouse_leave_(false),
73 ime_notification_(false), 73 ime_notification_(false),
74 is_hidden_(false), 74 is_hidden_(false),
75 close_on_deactivate_(false), 75 close_on_deactivate_(false),
76 tooltip_hwnd_(NULL), 76 tooltip_hwnd_(NULL),
77 tooltip_showing_(false), 77 tooltip_showing_(false),
78 shutdown_factory_(this), 78 shutdown_factory_(this),
79 parent_hwnd_(NULL), 79 parent_hwnd_(NULL),
80 is_loading_(false), 80 is_loading_(false),
81 focus_on_show_(true) { 81 activatable_(true) {
82 render_widget_host_->set_view(this); 82 render_widget_host_->set_view(this);
83 renderer_accessible_ = 83 renderer_accessible_ =
84 CommandLine().HasSwitch(switches::kEnableRendererAccessibility); 84 CommandLine().HasSwitch(switches::kEnableRendererAccessibility);
85 } 85 }
86 86
87 RenderWidgetHostViewWin::~RenderWidgetHostViewWin() { 87 RenderWidgetHostViewWin::~RenderWidgetHostViewWin() {
88 if (cursor_is_custom_) 88 if (cursor_is_custom_)
89 DestroyIcon(cursor_); 89 DestroyIcon(cursor_);
90 ResetTooltip(); 90 ResetTooltip();
91 } 91 }
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 SetCapture(); 159 SetCapture();
160 break; 160 break;
161 case WebInputEvent::MOUSE_UP: 161 case WebInputEvent::MOUSE_UP:
162 if (GetCapture() == m_hWnd) 162 if (GetCapture() == m_hWnd)
163 ReleaseCapture(); 163 ReleaseCapture();
164 break; 164 break;
165 } 165 }
166 166
167 render_widget_host_->ForwardMouseEvent(event); 167 render_widget_host_->ForwardMouseEvent(event);
168 168
169 if (event.type == WebInputEvent::MOUSE_DOWN) { 169 if (activatable_ && event.type == WebInputEvent::MOUSE_DOWN) {
170 // This is a temporary workaround for bug 765011 to get focus when the 170 // This is a temporary workaround for bug 765011 to get focus when the
171 // mouse is clicked. This happens after the mouse down event is sent to 171 // mouse is clicked. This happens after the mouse down event is sent to
172 // the renderer because normally Windows does a WM_SETFOCUS after 172 // the renderer because normally Windows does a WM_SETFOCUS after
173 // WM_LBUTTONDOWN. 173 // WM_LBUTTONDOWN.
174 SetFocus(); 174 SetFocus();
175 } 175 }
176 } 176 }
177 177
178 void RenderWidgetHostViewWin::Focus() { 178 void RenderWidgetHostViewWin::Focus() {
179 if (IsWindow()) 179 if (IsWindow())
(...skipping 593 matching lines...) Expand 10 before | Expand all | Expand 10 after
773 if (!handled_by_webcontents) { 773 if (!handled_by_webcontents) {
774 render_widget_host_->ForwardWheelEvent( 774 render_widget_host_->ForwardWheelEvent(
775 WebMouseWheelEvent(m_hWnd, message, wparam, lparam)); 775 WebMouseWheelEvent(m_hWnd, message, wparam, lparam));
776 } 776 }
777 handled = TRUE; 777 handled = TRUE;
778 return 0; 778 return 0;
779 } 779 }
780 780
781 LRESULT RenderWidgetHostViewWin::OnMouseActivate(UINT, WPARAM, LPARAM, 781 LRESULT RenderWidgetHostViewWin::OnMouseActivate(UINT, WPARAM, LPARAM,
782 BOOL& handled) { 782 BOOL& handled) {
783 if (!activatable_)
784 return MA_NOACTIVATE;
785
783 HWND focus_window = GetFocus(); 786 HWND focus_window = GetFocus();
784 if (!::IsWindow(focus_window) || !IsChild(focus_window)) { 787 if (!::IsWindow(focus_window) || !IsChild(focus_window)) {
785 // We handle WM_MOUSEACTIVATE to set focus to the underlying plugin 788 // We handle WM_MOUSEACTIVATE to set focus to the underlying plugin
786 // child window. This is to ensure that keyboard events are received 789 // child window. This is to ensure that keyboard events are received
787 // by the plugin. The correct way to fix this would be send over 790 // by the plugin. The correct way to fix this would be send over
788 // an event to the renderer which would then eventually send over 791 // an event to the renderer which would then eventually send over
789 // a setFocus call to the plugin widget. This would ensure that 792 // a setFocus call to the plugin widget. This would ensure that
790 // the renderer (webkit) knows about the plugin widget receiving 793 // the renderer (webkit) knows about the plugin widget receiving
791 // focus. 794 // focus.
792 // TODO(iyengar) Do the right thing as per the above comment. 795 // TODO(iyengar) Do the right thing as per the above comment.
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
910 ::DestroyWindow(tooltip_hwnd_); 913 ::DestroyWindow(tooltip_hwnd_);
911 tooltip_hwnd_ = NULL; 914 tooltip_hwnd_ = NULL;
912 } 915 }
913 916
914 void RenderWidgetHostViewWin::ShutdownHost() { 917 void RenderWidgetHostViewWin::ShutdownHost() {
915 shutdown_factory_.RevokeAll(); 918 shutdown_factory_.RevokeAll();
916 render_widget_host_->Shutdown(); 919 render_widget_host_->Shutdown();
917 // Do not touch any members at this point, |this| has been deleted. 920 // Do not touch any members at this point, |this| has been deleted.
918 } 921 }
919 922
OLDNEW
« no previous file with comments | « chrome/browser/render_widget_host_view_win.h ('k') | chrome/browser/resource_message_filter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698