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

Side by Side Diff: ui/views/widget/desktop_aura/desktop_native_widget_aura.cc

Issue 12342028: make menus, bubbles, etc. top level windows on aura (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 9 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
OLDNEW
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/widget/desktop_aura/desktop_native_widget_aura.h" 5 #include "ui/views/widget/desktop_aura/desktop_native_widget_aura.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "ui/aura/client/activation_client.h" 8 #include "ui/aura/client/activation_client.h"
9 #include "ui/aura/client/aura_constants.h" 9 #include "ui/aura/client/aura_constants.h"
10 #include "ui/aura/client/stacking_client.h" 10 #include "ui/aura/client/stacking_client.h"
11 #include "ui/aura/focus_manager.h" 11 #include "ui/aura/focus_manager.h"
12 #include "ui/aura/root_window.h" 12 #include "ui/aura/root_window.h"
13 #include "ui/aura/root_window_host.h" 13 #include "ui/aura/root_window_host.h"
14 #include "ui/aura/window.h" 14 #include "ui/aura/window.h"
15 #include "ui/aura/window_observer.h" 15 #include "ui/aura/window_observer.h"
16 #include "ui/aura/window_property.h" 16 #include "ui/aura/window_property.h"
17 #include "ui/base/hit_test.h" 17 #include "ui/base/hit_test.h"
18 #include "ui/compositor/layer.h" 18 #include "ui/compositor/layer.h"
19 #include "ui/gfx/canvas.h" 19 #include "ui/gfx/canvas.h"
20 #include "ui/native_theme/native_theme.h" 20 #include "ui/native_theme/native_theme.h"
21 #include "ui/views/corewm/compound_event_filter.h" 21 #include "ui/views/corewm/compound_event_filter.h"
22 #include "ui/views/corewm/corewm_switches.h" 22 #include "ui/views/corewm/corewm_switches.h"
23 #include "ui/views/corewm/input_method_event_filter.h" 23 #include "ui/views/corewm/input_method_event_filter.h"
24 #include "ui/views/corewm/shadow_controller.h" 24 #include "ui/views/corewm/shadow_controller.h"
25 #include "ui/views/corewm/shadow_types.h" 25 #include "ui/views/corewm/shadow_types.h"
26 #include "ui/views/corewm/tooltip_controller.h" 26 #include "ui/views/corewm/tooltip_controller.h"
27 #include "ui/views/corewm/visibility_controller.h"
27 #include "ui/views/drag_utils.h" 28 #include "ui/views/drag_utils.h"
28 #include "ui/views/ime/input_method.h" 29 #include "ui/views/ime/input_method.h"
29 #include "ui/views/ime/input_method_bridge.h" 30 #include "ui/views/ime/input_method_bridge.h"
30 #include "ui/views/widget/desktop_aura/desktop_root_window_host.h" 31 #include "ui/views/widget/desktop_aura/desktop_root_window_host.h"
31 #include "ui/views/widget/drop_helper.h" 32 #include "ui/views/widget/drop_helper.h"
32 #include "ui/views/widget/native_widget_aura_window_observer.h" 33 #include "ui/views/widget/native_widget_aura_window_observer.h"
33 #include "ui/views/widget/root_view.h" 34 #include "ui/views/widget/root_view.h"
34 #include "ui/views/widget/tooltip_manager_aura.h" 35 #include "ui/views/widget/tooltip_manager_aura.h"
35 #include "ui/views/widget/widget.h" 36 #include "ui/views/widget/widget.h"
36 #include "ui/views/widget/widget_aura_utils.h" 37 #include "ui/views/widget/widget_aura_utils.h"
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 213
213 void DesktopNativeWidgetAura::InitNativeWidget( 214 void DesktopNativeWidgetAura::InitNativeWidget(
214 const Widget::InitParams& params) { 215 const Widget::InitParams& params) {
215 ownership_ = params.ownership; 216 ownership_ = params.ownership;
216 217
217 window_->set_user_data(this); 218 window_->set_user_data(this);
218 window_->SetType(GetAuraWindowTypeForWidgetType(params.type)); 219 window_->SetType(GetAuraWindowTypeForWidgetType(params.type));
219 window_->SetTransparent(true); 220 window_->SetTransparent(true);
220 window_->Init(params.layer_type); 221 window_->Init(params.layer_type);
221 corewm::SetShadowType(window_, corewm::SHADOW_TYPE_NONE); 222 corewm::SetShadowType(window_, corewm::SHADOW_TYPE_NONE);
223 #if defined(OS_LINUX) // TODO(scottmg): http://crbug.com/180071
222 window_->Show(); 224 window_->Show();
225 #endif
223 226
224 desktop_root_window_host_ = params.desktop_root_window_host ? 227 desktop_root_window_host_ = params.desktop_root_window_host ?
225 params.desktop_root_window_host : 228 params.desktop_root_window_host :
226 DesktopRootWindowHost::Create(native_widget_delegate_, 229 DesktopRootWindowHost::Create(native_widget_delegate_,
227 this, params.bounds); 230 this, params.bounds);
228 root_window_.reset( 231 root_window_.reset(
229 desktop_root_window_host_->Init(window_, params)); 232 desktop_root_window_host_->Init(window_, params));
230 stacking_client_.reset( 233 stacking_client_.reset(
231 new DesktopNativeWidgetAuraStackingClient(root_window_.get())); 234 new DesktopNativeWidgetAuraStackingClient(root_window_.get()));
232 drop_helper_.reset(new DropHelper( 235 drop_helper_.reset(new DropHelper(
233 static_cast<internal::RootView*>(GetWidget()->GetRootView()))); 236 static_cast<internal::RootView*>(GetWidget()->GetRootView())));
234 aura::client::SetDragDropDelegate(window_, this); 237 aura::client::SetDragDropDelegate(window_, this);
235 238
236 tooltip_manager_.reset(new views::TooltipManagerAura(window_, GetWidget())); 239 tooltip_manager_.reset(new views::TooltipManagerAura(window_, GetWidget()));
237 tooltip_controller_.reset( 240 tooltip_controller_.reset(
238 new corewm::TooltipController(gfx::SCREEN_TYPE_NATIVE)); 241 new corewm::TooltipController(gfx::SCREEN_TYPE_NATIVE));
239 aura::client::SetTooltipClient(root_window_.get(), 242 aura::client::SetTooltipClient(root_window_.get(),
240 tooltip_controller_.get()); 243 tooltip_controller_.get());
241 root_window_->AddPreTargetHandler(tooltip_controller_.get()); 244 root_window_->AddPreTargetHandler(tooltip_controller_.get());
242 245
246 if (params.type != Widget::InitParams::TYPE_WINDOW) {
247 visibility_controller_.reset(new views::corewm::VisibilityController);
248 aura::client::SetVisibilityClient(GetNativeView()->GetRootWindow(),
249 visibility_controller_.get());
250 views::corewm::SetChildWindowVisibilityChangesAnimated(
251 GetNativeView()->GetRootWindow());
252 }
253 window_->Show();
254 desktop_root_window_host_->InitFocus(window_);
255
243 aura::client::SetActivationDelegate(window_, this); 256 aura::client::SetActivationDelegate(window_, this);
244 257
245 shadow_controller_.reset( 258 shadow_controller_.reset(
246 new corewm::ShadowController( 259 new corewm::ShadowController(
247 aura::client::GetActivationClient(root_window_.get()))); 260 aura::client::GetActivationClient(root_window_.get())));
248 } 261 }
249 262
250 NonClientFrameView* DesktopNativeWidgetAura::CreateNonClientFrameView() { 263 NonClientFrameView* DesktopNativeWidgetAura::CreateNonClientFrameView() {
251 return desktop_root_window_host_->CreateNonClientFrameView(); 264 return desktop_root_window_host_->CreateNonClientFrameView();
252 } 265 }
(...skipping 540 matching lines...) Expand 10 before | Expand all | Expand 10 after
793 drop_helper_->OnDragExit(); 806 drop_helper_->OnDragExit();
794 } 807 }
795 808
796 int DesktopNativeWidgetAura::OnPerformDrop(const ui::DropTargetEvent& event) { 809 int DesktopNativeWidgetAura::OnPerformDrop(const ui::DropTargetEvent& event) {
797 DCHECK(drop_helper_.get() != NULL); 810 DCHECK(drop_helper_.get() != NULL);
798 return drop_helper_->OnDrop(event.data(), event.location(), 811 return drop_helper_->OnDrop(event.data(), event.location(),
799 last_drop_operation_); 812 last_drop_operation_);
800 } 813 }
801 814
802 } // namespace views 815 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/widget/desktop_aura/desktop_native_widget_aura.h ('k') | ui/views/widget/desktop_aura/desktop_root_window_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698