diff options
author | victorw@chromium.org <victorw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-02 22:04:33 +0000 |
---|---|---|
committer | victorw@chromium.org <victorw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-02 22:04:33 +0000 |
commit | 9d166afe522da91217060a34787b16fa705f15e3 (patch) | |
tree | e7651e38f525fde797c66b2240315de01eb4809e /chrome/renderer/render_widget.cc | |
parent | 702126c6af7e854d09274cc9540b909f4e0f3249 (diff) | |
download | chromium_src-9d166afe522da91217060a34787b16fa705f15e3.zip chromium_src-9d166afe522da91217060a34787b16fa705f15e3.tar.gz chromium_src-9d166afe522da91217060a34787b16fa705f15e3.tar.bz2 |
Revert 39670 which breaks suggestion popup
Do not send extra blur and focus events if popup menu is showing
Add flag to RenderWidget to remember the popup menu state and
suppress focus / blur events when popup menu is showing. This
fixes the issue that extra focus / blur events are fired after
select control is clicked.
R=darin
BUG=23499
TEST=none
Review URL: http://codereview.chromium.org/647047
TBR=victorw@chromium.org
Review URL: http://codereview.chromium.org/660408
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40445 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/render_widget.cc')
-rw-r--r-- | chrome/renderer/render_widget.cc | 32 |
1 files changed, 3 insertions, 29 deletions
diff --git a/chrome/renderer/render_widget.cc b/chrome/renderer/render_widget.cc index 75cd8d2..343db541 100644 --- a/chrome/renderer/render_widget.cc +++ b/chrome/renderer/render_widget.cc @@ -67,9 +67,7 @@ RenderWidget::RenderWidget(RenderThreadBase* render_thread, bool activatable) ime_control_busy_(false), activatable_(activatable), pending_window_rect_count_(0), - suppress_next_char_events_(false), - showing_popup_menu_(false), - popup_menu_owner_widget_(NULL) { + suppress_next_char_events_(false) { RenderProcess::current()->AddRefProcess(); DCHECK(render_thread_); } @@ -345,19 +343,8 @@ void RenderWidget::OnMouseCaptureLost() { void RenderWidget::OnSetFocus(bool enable) { has_focus_ = enable; - if (webwidget_) { - // Suppress focus / blur event if this RenderView creates a popup - // menu and the popup menu is showing. - // This is because the popup menu is a child of the RenderView and - // when user clicks select control to show popup, we should not - // consider this as focusing changes, so the focus / blur events - // after popup menu is showing should be suppressed. The flag - // will be reset once the popup menu is closed (see - // RenderWidget::PopupMenuClosed). - if (!showing_popup_menu_) - webwidget_->setFocus(enable); - } - + if (webwidget_) + webwidget_->setFocus(enable); if (enable) { // Force to retrieve the state of the focused widget to determine if we // should activate IMEs next time when this process calls the UpdateIME() @@ -633,11 +620,6 @@ void RenderWidget::didBlur() { } void RenderWidget::DoDeferredClose() { - if (popup_menu_owner_widget_.get()) { - popup_menu_owner_widget_->PopupMenuClosed(); - popup_menu_owner_widget_ = NULL; - } - Send(new ViewHostMsg_Close(routing_id_)); } @@ -885,11 +867,3 @@ void RenderWidget::CleanupWindowInPluginMoves(gfx::PluginWindowHandle window) { } } } - -void RenderWidget::SetPopupMenuOwnerWidget(RenderWidget* widget) { - popup_menu_owner_widget_ = widget; -} - -void RenderWidget::PopupMenuClosed() { - showing_popup_menu_ = false; -} |