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

Side by Side Diff: chrome/browser/ui/views/autofill/autofill_popup_base_view.cc

Issue 391343010: Revert r283051: Fix positioning of Autofill popups (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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/ui/views/autofill/autofill_popup_base_view.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/ui/views/autofill/autofill_popup_base_view.h" 5 #include "chrome/browser/ui/views/autofill/autofill_popup_base_view.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/location.h" 8 #include "base/location.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "chrome/browser/ui/autofill/popup_constants.h" 10 #include "chrome/browser/ui/autofill/popup_constants.h"
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 ui::Accelerator(ui::VKEY_ESCAPE, ui::EF_NONE), 56 ui::Accelerator(ui::VKEY_ESCAPE, ui::EF_NONE),
57 ui::AcceleratorManager::kNormalPriority, 57 ui::AcceleratorManager::kNormalPriority,
58 this); 58 this);
59 59
60 // The widget is destroyed by the corresponding NativeWidget, so we use 60 // The widget is destroyed by the corresponding NativeWidget, so we use
61 // a weak pointer to hold the reference and don't have to worry about 61 // a weak pointer to hold the reference and don't have to worry about
62 // deletion. 62 // deletion.
63 views::Widget* widget = new views::Widget; 63 views::Widget* widget = new views::Widget;
64 views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP); 64 views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP);
65 params.delegate = this; 65 params.delegate = this;
66 params.context = container_view(); 66 params.parent = container_view();
67 widget->Init(params); 67 widget->Init(params);
68 widget->SetContentsView(this); 68 widget->SetContentsView(this);
69 69
70 // No animation for popup appearance (too distracting). 70 // No animation for popup appearance (too distracting).
71 wm::SetWindowVisibilityAnimationTransition( 71 wm::SetWindowVisibilityAnimationTransition(
72 widget->GetNativeView(), wm::ANIMATE_HIDE); 72 widget->GetNativeView(), wm::ANIMATE_HIDE);
73 } 73 }
74 74
75 SetBorder(views::Border::CreateSolidBorder(kPopupBorderThickness, 75 SetBorder(views::Border::CreateSolidBorder(kPopupBorderThickness,
76 kBorderColor)); 76 kBorderColor));
(...skipping 18 matching lines...) Expand all
95 // assume the the widget is still valid after this point. 95 // assume the the widget is still valid after this point.
96 // http://crbug.com/229224 96 // http://crbug.com/229224
97 // NOTE: This deletes |this|. 97 // NOTE: This deletes |this|.
98 GetWidget()->Close(); 98 GetWidget()->Close();
99 } else { 99 } else {
100 delete this; 100 delete this;
101 } 101 }
102 } 102 }
103 103
104 void AutofillPopupBaseView::RemoveObserver() { 104 void AutofillPopupBaseView::RemoveObserver() {
105 if (observing_widget_) { 105 observing_widget_->GetFocusManager()->UnregisterAccelerators(this);
106 observing_widget_->GetFocusManager()->UnregisterAccelerators(this); 106 observing_widget_->RemoveObserver(this);
107 observing_widget_->RemoveObserver(this);
108 }
109 views::WidgetFocusManager::GetInstance()->RemoveFocusChangeListener(this); 107 views::WidgetFocusManager::GetInstance()->RemoveFocusChangeListener(this);
110 } 108 }
111 109
112 void AutofillPopupBaseView::DoUpdateBoundsAndRedrawPopup() { 110 void AutofillPopupBaseView::DoUpdateBoundsAndRedrawPopup() {
113 GetWidget()->SetBounds(delegate_->popup_bounds()); 111 GetWidget()->SetBounds(delegate_->popup_bounds());
114 SchedulePaint(); 112 SchedulePaint();
115 } 113 }
116 114
117 void AutofillPopupBaseView::OnNativeFocusChange( 115 void AutofillPopupBaseView::OnNativeFocusChange(
118 gfx::NativeView focused_before, 116 gfx::NativeView focused_before,
119 gfx::NativeView focused_now) { 117 gfx::NativeView focused_now) {
120 if (GetWidget() && GetWidget()->GetNativeView() != focused_now) 118 if (GetWidget() && GetWidget()->GetNativeView() != focused_now)
121 HideController(); 119 HideController();
122 } 120 }
123 121
124 void AutofillPopupBaseView::OnWidgetDestroying(views::Widget* widget) {
125 DCHECK_EQ(widget, observing_widget_);
126 observing_widget_ = NULL;
127 }
128
129 void AutofillPopupBaseView::OnWidgetBoundsChanged(views::Widget* widget, 122 void AutofillPopupBaseView::OnWidgetBoundsChanged(views::Widget* widget,
130 const gfx::Rect& new_bounds) { 123 const gfx::Rect& new_bounds) {
131 DCHECK_EQ(widget, observing_widget_); 124 DCHECK_EQ(widget, observing_widget_);
132 HideController(); 125 HideController();
133 } 126 }
134 127
135 void AutofillPopupBaseView::OnMouseCaptureLost() { 128 void AutofillPopupBaseView::OnMouseCaptureLost() {
136 ClearSelection(); 129 ClearSelection();
137 } 130 }
138 131
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 void AutofillPopupBaseView::HideController() { 234 void AutofillPopupBaseView::HideController() {
242 if (delegate_) 235 if (delegate_)
243 delegate_->Hide(); 236 delegate_->Hide();
244 } 237 }
245 238
246 gfx::NativeView AutofillPopupBaseView::container_view() { 239 gfx::NativeView AutofillPopupBaseView::container_view() {
247 return delegate_->container_view(); 240 return delegate_->container_view();
248 } 241 }
249 242
250 } // namespace autofill 243 } // namespace autofill
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/autofill/autofill_popup_base_view.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698