OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "ui/views/controls/native/native_view_host_aura.h" | 5 #include "ui/views/controls/native/native_view_host_aura.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "ui/aura/client/aura_constants.h" | 8 #include "ui/aura/client/aura_constants.h" |
9 #include "ui/aura/client/focus_client.h" | 9 #include "ui/aura/client/focus_client.h" |
10 #include "ui/aura/window.h" | 10 #include "ui/aura/window.h" |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
192 | 192 |
193 // static | 193 // static |
194 NativeViewHostWrapper* NativeViewHostWrapper::CreateWrapper( | 194 NativeViewHostWrapper* NativeViewHostWrapper::CreateWrapper( |
195 NativeViewHost* host) { | 195 NativeViewHost* host) { |
196 return new NativeViewHostAura(host); | 196 return new NativeViewHostAura(host); |
197 } | 197 } |
198 | 198 |
199 void NativeViewHostAura::AddClippingWindow() { | 199 void NativeViewHostAura::AddClippingWindow() { |
200 RemoveClippingWindow(); | 200 RemoveClippingWindow(); |
201 | 201 |
202 gfx::Rect bounds = host_->native_view()->bounds(); | 202 gfx::Rect bounds = host_->GetVisibleBounds(); |
203 host_->native_view()->SetProperty(aura::client::kHostWindowKey, | 203 host_->native_view()->SetProperty(aura::client::kHostWindowKey, |
204 host_->GetWidget()->GetNativeView()); | 204 host_->GetWidget()->GetNativeView()); |
205 Widget::ReparentNativeView(host_->native_view(), | 205 Widget::ReparentNativeView(host_->native_view(), |
206 &clipping_window_); | 206 &clipping_window_); |
207 if (host_->GetWidget()->GetNativeView()) { | 207 if (host_->GetWidget()->GetNativeView()) { |
208 Widget::ReparentNativeView(&clipping_window_, | 208 Widget::ReparentNativeView(&clipping_window_, |
209 host_->GetWidget()->GetNativeView()); | 209 host_->GetWidget()->GetNativeView()); |
210 } | 210 } |
211 clipping_window_.SetBounds(bounds); | 211 clipping_window_.SetBounds(bounds); |
sky
2014/08/05 16:42:51
Is there a reason we need to set the bounds here?
| |
212 bounds.set_origin(gfx::Point(0, 0)); | 212 bounds.set_origin(gfx::Point(0, 0)); |
213 host_->native_view()->SetBounds(bounds); | 213 host_->native_view()->SetBounds(bounds); |
214 clipping_window_.Show(); | 214 clipping_window_.Show(); |
215 } | 215 } |
216 | 216 |
217 void NativeViewHostAura::RemoveClippingWindow() { | 217 void NativeViewHostAura::RemoveClippingWindow() { |
218 clipping_window_.Hide(); | 218 clipping_window_.Hide(); |
219 if (host_->native_view()) | 219 if (host_->native_view()) |
220 host_->native_view()->ClearProperty(aura::client::kHostWindowKey); | 220 host_->native_view()->ClearProperty(aura::client::kHostWindowKey); |
221 | 221 |
222 if (host_->native_view()->parent() == &clipping_window_) { | 222 if (host_->native_view()->parent() == &clipping_window_) { |
223 if (host_->GetWidget() && host_->GetWidget()->GetNativeView()) { | 223 if (host_->GetWidget() && host_->GetWidget()->GetNativeView()) { |
224 Widget::ReparentNativeView(host_->native_view(), | 224 Widget::ReparentNativeView(host_->native_view(), |
225 host_->GetWidget()->GetNativeView()); | 225 host_->GetWidget()->GetNativeView()); |
226 } else { | 226 } else { |
227 clipping_window_.RemoveChild(host_->native_view()); | 227 clipping_window_.RemoveChild(host_->native_view()); |
228 } | 228 } |
229 host_->native_view()->SetBounds(clipping_window_.bounds()); | 229 host_->native_view()->SetBounds(clipping_window_.bounds()); |
230 } | 230 } |
231 if (clipping_window_.parent()) | 231 if (clipping_window_.parent()) |
232 clipping_window_.parent()->RemoveChild(&clipping_window_); | 232 clipping_window_.parent()->RemoveChild(&clipping_window_); |
233 } | 233 } |
234 | 234 |
235 } // namespace views | 235 } // namespace views |
OLD | NEW |