Chromium Code Reviews

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

Issue 1391893003: NOT FOR REVIEW: Aura on Android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
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 "base/trace_event/trace_event.h" 8 #include "base/trace_event/trace_event.h"
9 #include "ui/aura/client/aura_constants.h" 9 #include "ui/aura/client/aura_constants.h"
10 #include "ui/aura/client/cursor_client.h" 10 #include "ui/aura/client/cursor_client.h"
(...skipping 405 matching lines...)
416 } 416 }
417 content_window_->SetType(GetAuraWindowTypeForWidgetType(params.type)); 417 content_window_->SetType(GetAuraWindowTypeForWidgetType(params.type));
418 content_window_->Init(params.layer_type); 418 content_window_->Init(params.layer_type);
419 wm::SetShadowType(content_window_, wm::SHADOW_TYPE_NONE); 419 wm::SetShadowType(content_window_, wm::SHADOW_TYPE_NONE);
420 420
421 content_window_container_ = new aura::Window(NULL); 421 content_window_container_ = new aura::Window(NULL);
422 content_window_container_->Init(ui::LAYER_NOT_DRAWN); 422 content_window_container_->Init(ui::LAYER_NOT_DRAWN);
423 content_window_container_->Show(); 423 content_window_container_->Show();
424 content_window_container_->AddChild(content_window_); 424 content_window_container_->AddChild(content_window_);
425 425
426 //TODO(mfomitchev): Hack
427 #if defined(OS_ANDROID)
428 desktop_window_tree_host_ = params.desktop_window_tree_host ?
429 params.desktop_window_tree_host : nullptr;
430 #else
426 desktop_window_tree_host_ = params.desktop_window_tree_host ? 431 desktop_window_tree_host_ = params.desktop_window_tree_host ?
427 params.desktop_window_tree_host : 432 params.desktop_window_tree_host :
428 DesktopWindowTreeHost::Create(native_widget_delegate_, this); 433 DesktopWindowTreeHost::Create(native_widget_delegate_, this);
434 #endif
429 host_.reset(desktop_window_tree_host_->AsWindowTreeHost()); 435 host_.reset(desktop_window_tree_host_->AsWindowTreeHost());
430 desktop_window_tree_host_->Init(content_window_, params); 436 desktop_window_tree_host_->Init(content_window_, params);
431 437
432 host_->InitHost(); 438 host_->InitHost();
433 host_->window()->AddChild(content_window_container_); 439 host_->window()->AddChild(content_window_container_);
434 host_->window()->SetProperty(kDesktopNativeWidgetAuraKey, this); 440 host_->window()->SetProperty(kDesktopNativeWidgetAuraKey, this);
435 441
436 host_->window()->AddObserver(new RootWindowDestructionObserver(this)); 442 host_->window()->AddObserver(new RootWindowDestructionObserver(this));
437 443
438 // The WindowsModalityController event filter should be at the head of the 444 // The WindowsModalityController event filter should be at the head of the
(...skipping 10 matching lines...)
449 // TODO(beng): see if we can't do this some other way. CEF seems a heavy- 455 // TODO(beng): see if we can't do this some other way. CEF seems a heavy-
450 // handed way of accomplishing focus. 456 // handed way of accomplishing focus.
451 // No event filter for aura::Env. Create CompoundEventFilter per 457 // No event filter for aura::Env. Create CompoundEventFilter per
452 // WindowEventDispatcher. 458 // WindowEventDispatcher.
453 root_window_event_filter_.reset(new wm::CompoundEventFilter); 459 root_window_event_filter_.reset(new wm::CompoundEventFilter);
454 host_->window()->AddPreTargetHandler(root_window_event_filter_.get()); 460 host_->window()->AddPreTargetHandler(root_window_event_filter_.get());
455 461
456 // The host's dispatcher must be added to |native_cursor_manager_| before 462 // The host's dispatcher must be added to |native_cursor_manager_| before
457 // OnNativeWidgetCreated() is called. 463 // OnNativeWidgetCreated() is called.
458 cursor_reference_count_++; 464 cursor_reference_count_++;
465 #if !defined(OS_ANDROID)
459 if (!native_cursor_manager_) { 466 if (!native_cursor_manager_) {
460 native_cursor_manager_ = new DesktopNativeCursorManager( 467 native_cursor_manager_ = new DesktopNativeCursorManager(
461 DesktopCursorLoaderUpdater::Create()); 468 DesktopCursorLoaderUpdater::Create());
462 } 469 }
470 #endif
463 if (!cursor_manager_) { 471 if (!cursor_manager_) {
464 cursor_manager_ = new wm::CursorManager( 472 cursor_manager_ = new wm::CursorManager(
465 scoped_ptr<wm::NativeCursorManager>(native_cursor_manager_)); 473 scoped_ptr<wm::NativeCursorManager>(native_cursor_manager_));
466 } 474 }
467 native_cursor_manager_->AddHost(host()); 475 native_cursor_manager_->AddHost(host());
468 aura::client::SetCursorClient(host_->window(), cursor_manager_); 476 aura::client::SetCursorClient(host_->window(), cursor_manager_);
469 477
470 desktop_window_tree_host_->OnNativeWidgetCreated(params); 478 desktop_window_tree_host_->OnNativeWidgetCreated(params);
471 479
472 UpdateWindowTransparency(); 480 UpdateWindowTransparency();
(...skipping 457 matching lines...)
930 wm_transition = wm::ANIMATE_BOTH; 938 wm_transition = wm::ANIMATE_BOTH;
931 break; 939 break;
932 case Widget::ANIMATE_NONE: 940 case Widget::ANIMATE_NONE:
933 wm_transition = wm::ANIMATE_NONE; 941 wm_transition = wm::ANIMATE_NONE;
934 break; 942 break;
935 } 943 }
936 wm::SetWindowVisibilityAnimationTransition(content_window_, wm_transition); 944 wm::SetWindowVisibilityAnimationTransition(content_window_, wm_transition);
937 } 945 }
938 946
939 ui::NativeTheme* DesktopNativeWidgetAura::GetNativeTheme() const { 947 ui::NativeTheme* DesktopNativeWidgetAura::GetNativeTheme() const {
948 #if defined(OS_ANDROID)
949 return nullptr;
950 #else
940 return DesktopWindowTreeHost::GetNativeTheme(content_window_); 951 return DesktopWindowTreeHost::GetNativeTheme(content_window_);
952 #endif
941 } 953 }
942 954
943 void DesktopNativeWidgetAura::OnRootViewLayout() { 955 void DesktopNativeWidgetAura::OnRootViewLayout() {
944 if (content_window_) 956 if (content_window_)
945 desktop_window_tree_host_->OnRootViewLayout(); 957 desktop_window_tree_host_->OnRootViewLayout();
946 } 958 }
947 959
948 bool DesktopNativeWidgetAura::IsTranslucentWindowOpacitySupported() const { 960 bool DesktopNativeWidgetAura::IsTranslucentWindowOpacitySupported() const {
949 return content_window_ && 961 return content_window_ &&
950 desktop_window_tree_host_->IsTranslucentWindowOpacitySupported(); 962 desktop_window_tree_host_->IsTranslucentWindowOpacitySupported();
(...skipping 250 matching lines...)
1201 if (cursor_reference_count_ == 0) { 1213 if (cursor_reference_count_ == 0) {
1202 // We are the last DesktopNativeWidgetAura instance, and we are responsible 1214 // We are the last DesktopNativeWidgetAura instance, and we are responsible
1203 // for cleaning up |cursor_manager_|. 1215 // for cleaning up |cursor_manager_|.
1204 delete cursor_manager_; 1216 delete cursor_manager_;
1205 native_cursor_manager_ = NULL; 1217 native_cursor_manager_ = NULL;
1206 cursor_manager_ = NULL; 1218 cursor_manager_ = NULL;
1207 } 1219 }
1208 } 1220 }
1209 1221
1210 } // namespace views 1222 } // namespace views
OLDNEW

Powered by Google App Engine