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 "content/browser/renderer_host/render_widget_host_view_aura.h" | 5 #include "content/browser/renderer_host/render_widget_host_view_aura.h" |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/callback_helpers.h" | 9 #include "base/callback_helpers.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
137 SetParent(window, ui::GetHiddenWindow()); | 137 SetParent(window, ui::GetHiddenWindow()); |
138 return TRUE; | 138 return TRUE; |
139 } | 139 } |
140 | 140 |
141 BOOL CALLBACK ShowWindowsCallback(HWND window, LPARAM param) { | 141 BOOL CALLBACK ShowWindowsCallback(HWND window, LPARAM param) { |
142 RenderWidgetHostViewAura* widget = | 142 RenderWidgetHostViewAura* widget = |
143 reinterpret_cast<RenderWidgetHostViewAura*>(param); | 143 reinterpret_cast<RenderWidgetHostViewAura*>(param); |
144 | 144 |
145 if (GetProp(window, kWidgetOwnerProperty) == widget) { | 145 if (GetProp(window, kWidgetOwnerProperty) == widget) { |
146 HWND parent = | 146 HWND parent = |
147 widget->GetNativeView()->GetRootWindow()->GetAcceleratedWidget(); | 147 widget->GetNativeView()->GetDispatcher()->GetAcceleratedWidget(); |
148 SetParent(window, parent); | 148 SetParent(window, parent); |
149 } | 149 } |
150 return TRUE; | 150 return TRUE; |
151 } | 151 } |
152 | 152 |
153 struct CutoutRectsParams { | 153 struct CutoutRectsParams { |
154 RenderWidgetHostViewAura* widget; | 154 RenderWidgetHostViewAura* widget; |
155 std::vector<gfx::Rect> cutout_rects; | 155 std::vector<gfx::Rect> cutout_rects; |
156 std::map<HWND, WebPluginGeometry>* geometry; | 156 std::map<HWND, WebPluginGeometry>* geometry; |
157 }; | 157 }; |
158 | 158 |
159 // Used to update the region for the windowed plugin to draw in. We start with | 159 // Used to update the region for the windowed plugin to draw in. We start with |
160 // the clip rect from the renderer, then remove the cutout rects from the | 160 // the clip rect from the renderer, then remove the cutout rects from the |
161 // renderer, and then remove the transient windows from the root window and the | 161 // renderer, and then remove the transient windows from the root window and the |
162 // constrained windows from the parent window. | 162 // constrained windows from the parent window. |
163 BOOL CALLBACK SetCutoutRectsCallback(HWND window, LPARAM param) { | 163 BOOL CALLBACK SetCutoutRectsCallback(HWND window, LPARAM param) { |
164 CutoutRectsParams* params = reinterpret_cast<CutoutRectsParams*>(param); | 164 CutoutRectsParams* params = reinterpret_cast<CutoutRectsParams*>(param); |
165 | 165 |
166 if (GetProp(window, kWidgetOwnerProperty) == params->widget) { | 166 if (GetProp(window, kWidgetOwnerProperty) == params->widget) { |
167 // First calculate the offset of this plugin from the root window, since | 167 // First calculate the offset of this plugin from the root window, since |
168 // the cutouts are relative to the root window. | 168 // the cutouts are relative to the root window. |
169 HWND parent = params->widget->GetNativeView()->GetRootWindow()-> | 169 HWND parent = params->widget->GetNativeView()->GetDispatcher()-> |
170 GetAcceleratedWidget(); | 170 GetAcceleratedWidget(); |
171 POINT offset; | 171 POINT offset; |
172 offset.x = offset.y = 0; | 172 offset.x = offset.y = 0; |
173 MapWindowPoints(window, parent, &offset, 1); | 173 MapWindowPoints(window, parent, &offset, 1); |
174 | 174 |
175 // Now get the cached clip rect and cutouts for this plugin window that came | 175 // Now get the cached clip rect and cutouts for this plugin window that came |
176 // from the renderer. | 176 // from the renderer. |
177 std::map<HWND, WebPluginGeometry>::iterator i = params->geometry->begin(); | 177 std::map<HWND, WebPluginGeometry>::iterator i = params->geometry->begin(); |
178 while (i != params->geometry->end() && | 178 while (i != params->geometry->end() && |
179 i->second.window != window && | 179 i->second.window != window && |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
362 } // namespace | 362 } // namespace |
363 | 363 |
364 // We need to watch for mouse events outside a Web Popup or its parent | 364 // We need to watch for mouse events outside a Web Popup or its parent |
365 // and dismiss the popup for certain events. | 365 // and dismiss the popup for certain events. |
366 class RenderWidgetHostViewAura::EventFilterForPopupExit : | 366 class RenderWidgetHostViewAura::EventFilterForPopupExit : |
367 public ui::EventHandler { | 367 public ui::EventHandler { |
368 public: | 368 public: |
369 explicit EventFilterForPopupExit(RenderWidgetHostViewAura* rwhva) | 369 explicit EventFilterForPopupExit(RenderWidgetHostViewAura* rwhva) |
370 : rwhva_(rwhva) { | 370 : rwhva_(rwhva) { |
371 DCHECK(rwhva_); | 371 DCHECK(rwhva_); |
372 aura::RootWindow* root_window = rwhva_->window_->GetRootWindow(); | 372 aura::Window* root_window = rwhva_->window_->GetRootWindow(); |
373 DCHECK(root_window); | 373 DCHECK(root_window); |
374 root_window->AddPreTargetHandler(this); | 374 root_window->AddPreTargetHandler(this); |
375 } | 375 } |
376 | 376 |
377 virtual ~EventFilterForPopupExit() { | 377 virtual ~EventFilterForPopupExit() { |
378 aura::RootWindow* root_window = rwhva_->window_->GetRootWindow(); | 378 aura::Window* root_window = rwhva_->window_->GetRootWindow(); |
379 DCHECK(root_window); | 379 DCHECK(root_window); |
380 root_window->RemovePreTargetHandler(this); | 380 root_window->RemovePreTargetHandler(this); |
381 } | 381 } |
382 | 382 |
383 // Overridden from ui::EventHandler | 383 // Overridden from ui::EventHandler |
384 virtual void OnMouseEvent(ui::MouseEvent* event) OVERRIDE { | 384 virtual void OnMouseEvent(ui::MouseEvent* event) OVERRIDE { |
385 rwhva_->ApplyEventFilterForPopupExit(event); | 385 rwhva_->ApplyEventFilterForPopupExit(event); |
386 } | 386 } |
387 | 387 |
388 private: | 388 private: |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
497 // is not known now. | 497 // is not known now. |
498 } | 498 } |
499 | 499 |
500 virtual void OnRemoveTransientChild(aura::Window* window, | 500 virtual void OnRemoveTransientChild(aura::Window* window, |
501 aura::Window* transient) OVERRIDE { | 501 aura::Window* transient) OVERRIDE { |
502 transient->RemoveObserver(this); | 502 transient->RemoveObserver(this); |
503 SendPluginCutoutRects(); | 503 SendPluginCutoutRects(); |
504 } | 504 } |
505 | 505 |
506 aura::Window* GetToplevelWindow() { | 506 aura::Window* GetToplevelWindow() { |
507 aura::RootWindow* root = view_->window_->GetRootWindow(); | 507 aura::Window* root = view_->window_->GetRootWindow(); |
508 if (!root) | 508 if (!root) |
509 return NULL; | 509 return NULL; |
510 aura::client::ActivationClient* activation_client = | 510 aura::client::ActivationClient* activation_client = |
511 aura::client::GetActivationClient(root); | 511 aura::client::GetActivationClient(root); |
512 if (!activation_client) | 512 if (!activation_client) |
513 return NULL; | 513 return NULL; |
514 return activation_client->GetToplevelWindow(view_->window_); | 514 return activation_client->GetToplevelWindow(view_->window_); |
515 } | 515 } |
516 | 516 |
517 void StopObserving() { | 517 void StopObserving() { |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
612 // similar mechanism to ensure a second popup doesn't cause the first one | 612 // similar mechanism to ensure a second popup doesn't cause the first one |
613 // to never get a chance to filter events. See crbug.com/160589. | 613 // to never get a chance to filter events. See crbug.com/160589. |
614 DCHECK(old_child->popup_parent_host_view_ == popup_parent_host_view_); | 614 DCHECK(old_child->popup_parent_host_view_ == popup_parent_host_view_); |
615 old_child->popup_parent_host_view_ = NULL; | 615 old_child->popup_parent_host_view_ = NULL; |
616 } | 616 } |
617 popup_parent_host_view_->popup_child_host_view_ = this; | 617 popup_parent_host_view_->popup_child_host_view_ = this; |
618 window_->SetType(aura::client::WINDOW_TYPE_MENU); | 618 window_->SetType(aura::client::WINDOW_TYPE_MENU); |
619 window_->Init(ui::LAYER_TEXTURED); | 619 window_->Init(ui::LAYER_TEXTURED); |
620 window_->SetName("RenderWidgetHostViewAura"); | 620 window_->SetName("RenderWidgetHostViewAura"); |
621 | 621 |
622 aura::RootWindow* root = popup_parent_host_view_->window_->GetRootWindow(); | 622 aura::Window* root = popup_parent_host_view_->window_->GetRootWindow(); |
623 aura::client::ParentWindowWithContext(window_, root, bounds_in_screen); | 623 aura::client::ParentWindowWithContext(window_, root, bounds_in_screen); |
624 | 624 |
625 // TODO(erg): While I could make sure details of the WindowTreeClient are | 625 // TODO(erg): While I could make sure details of the WindowTreeClient are |
626 // hidden behind aura, hiding the details of the ScreenPositionClient will | 626 // hidden behind aura, hiding the details of the ScreenPositionClient will |
627 // take another effort. | 627 // take another effort. |
628 aura::client::ScreenPositionClient* screen_position_client = | 628 aura::client::ScreenPositionClient* screen_position_client = |
629 aura::client::GetScreenPositionClient(root); | 629 aura::client::GetScreenPositionClient(root); |
630 gfx::Point origin_in_parent(bounds_in_screen.origin()); | 630 gfx::Point origin_in_parent(bounds_in_screen.origin()); |
631 if (screen_position_client) { | 631 if (screen_position_client) { |
632 screen_position_client->ConvertPointFromScreen( | 632 screen_position_client->ConvertPointFromScreen( |
633 window_->parent(), &origin_in_parent); | 633 window_->parent(), &origin_in_parent); |
634 } | 634 } |
635 SetBounds(gfx::Rect(origin_in_parent, bounds_in_screen.size())); | 635 SetBounds(gfx::Rect(origin_in_parent, bounds_in_screen.size())); |
636 Show(); | 636 Show(); |
637 } | 637 } |
638 | 638 |
639 void RenderWidgetHostViewAura::InitAsFullscreen( | 639 void RenderWidgetHostViewAura::InitAsFullscreen( |
640 RenderWidgetHostView* reference_host_view) { | 640 RenderWidgetHostView* reference_host_view) { |
641 is_fullscreen_ = true; | 641 is_fullscreen_ = true; |
642 window_->SetType(aura::client::WINDOW_TYPE_NORMAL); | 642 window_->SetType(aura::client::WINDOW_TYPE_NORMAL); |
643 window_->Init(ui::LAYER_TEXTURED); | 643 window_->Init(ui::LAYER_TEXTURED); |
644 window_->SetName("RenderWidgetHostViewAura"); | 644 window_->SetName("RenderWidgetHostViewAura"); |
645 window_->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_FULLSCREEN); | 645 window_->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_FULLSCREEN); |
646 | 646 |
647 aura::RootWindow* parent = NULL; | 647 aura::Window* parent = NULL; |
648 gfx::Rect bounds; | 648 gfx::Rect bounds; |
649 if (reference_host_view) { | 649 if (reference_host_view) { |
650 aura::Window* reference_window = | 650 aura::Window* reference_window = |
651 static_cast<RenderWidgetHostViewAura*>(reference_host_view)->window_; | 651 static_cast<RenderWidgetHostViewAura*>(reference_host_view)->window_; |
652 if (reference_window) { | 652 if (reference_window) { |
653 host_tracker_.reset(new aura::WindowTracker); | 653 host_tracker_.reset(new aura::WindowTracker); |
654 host_tracker_->Add(reference_window); | 654 host_tracker_->Add(reference_window); |
655 } | 655 } |
656 gfx::Display display = gfx::Screen::GetScreenFor(window_)-> | 656 gfx::Display display = gfx::Screen::GetScreenFor(window_)-> |
657 GetDisplayNearestWindow(reference_window); | 657 GetDisplayNearestWindow(reference_window); |
658 parent = reference_window->GetRootWindow(); | 658 parent = reference_window->GetRootWindow(); |
659 bounds = display.bounds(); | 659 bounds = display.bounds(); |
660 } | 660 } |
661 aura::client::ParentWindowWithContext(window_, parent, bounds); | 661 aura::client::ParentWindowWithContext(window_, parent, bounds); |
662 Show(); | 662 Show(); |
663 Focus(); | 663 Focus(); |
664 } | 664 } |
665 | 665 |
666 RenderWidgetHost* RenderWidgetHostViewAura::GetRenderWidgetHost() const { | 666 RenderWidgetHost* RenderWidgetHostViewAura::GetRenderWidgetHost() const { |
667 return host_; | 667 return host_; |
668 } | 668 } |
669 | 669 |
670 void RenderWidgetHostViewAura::WasShown() { | 670 void RenderWidgetHostViewAura::WasShown() { |
671 DCHECK(host_); | 671 DCHECK(host_); |
672 if (!host_->is_hidden()) | 672 if (!host_->is_hidden()) |
673 return; | 673 return; |
674 host_->WasShown(); | 674 host_->WasShown(); |
675 software_frame_manager_->SetVisibility(true); | 675 software_frame_manager_->SetVisibility(true); |
676 | 676 |
677 aura::RootWindow* root = window_->GetRootWindow(); | 677 aura::Window* root = window_->GetRootWindow(); |
678 if (root) { | 678 if (root) { |
679 aura::client::CursorClient* cursor_client = | 679 aura::client::CursorClient* cursor_client = |
680 aura::client::GetCursorClient(root); | 680 aura::client::GetCursorClient(root); |
681 if (cursor_client) | 681 if (cursor_client) |
682 NotifyRendererOfCursorVisibilityState(cursor_client->IsCursorVisible()); | 682 NotifyRendererOfCursorVisibilityState(cursor_client->IsCursorVisible()); |
683 } | 683 } |
684 | 684 |
685 if (!current_surface_.get() && host_->is_accelerated_compositing_active() && | 685 if (!current_surface_.get() && host_->is_accelerated_compositing_active() && |
686 !released_front_lock_.get()) { | 686 !released_front_lock_.get()) { |
687 ui::Compositor* compositor = GetCompositor(); | 687 ui::Compositor* compositor = GetCompositor(); |
688 if (compositor) | 688 if (compositor) |
689 released_front_lock_ = compositor->GetCompositorLock(); | 689 released_front_lock_ = compositor->GetCompositorLock(); |
690 } | 690 } |
691 | 691 |
692 #if defined(OS_WIN) | 692 #if defined(OS_WIN) |
693 LPARAM lparam = reinterpret_cast<LPARAM>(this); | 693 LPARAM lparam = reinterpret_cast<LPARAM>(this); |
694 EnumChildWindows(ui::GetHiddenWindow(), ShowWindowsCallback, lparam); | 694 EnumChildWindows(ui::GetHiddenWindow(), ShowWindowsCallback, lparam); |
695 transient_observer_->SendPluginCutoutRects(); | 695 transient_observer_->SendPluginCutoutRects(); |
696 #endif | 696 #endif |
697 } | 697 } |
698 | 698 |
699 void RenderWidgetHostViewAura::WasHidden() { | 699 void RenderWidgetHostViewAura::WasHidden() { |
700 if (!host_ || host_->is_hidden()) | 700 if (!host_ || host_->is_hidden()) |
701 return; | 701 return; |
702 host_->WasHidden(); | 702 host_->WasHidden(); |
703 software_frame_manager_->SetVisibility(false); | 703 software_frame_manager_->SetVisibility(false); |
704 released_front_lock_ = NULL; | 704 released_front_lock_ = NULL; |
705 | 705 |
706 #if defined(OS_WIN) | 706 #if defined(OS_WIN) |
707 aura::RootWindow* root_window = window_->GetRootWindow(); | 707 aura::WindowEventDispatcher* dispatcher = window_->GetDispatcher(); |
708 if (root_window) { | 708 if (dispatcher) { |
709 HWND parent = root_window->GetAcceleratedWidget(); | 709 HWND parent = dispatcher->GetAcceleratedWidget(); |
710 LPARAM lparam = reinterpret_cast<LPARAM>(this); | 710 LPARAM lparam = reinterpret_cast<LPARAM>(this); |
711 | 711 |
712 EnumChildWindows(parent, HideWindowsCallback, lparam); | 712 EnumChildWindows(parent, HideWindowsCallback, lparam); |
713 } | 713 } |
714 #endif | 714 #endif |
715 } | 715 } |
716 | 716 |
717 void RenderWidgetHostViewAura::SetSize(const gfx::Size& size) { | 717 void RenderWidgetHostViewAura::SetSize(const gfx::Size& size) { |
718 SetBounds(gfx::Rect(window_->bounds().origin(), size)); | 718 SetBounds(gfx::Rect(window_->bounds().origin(), size)); |
719 } | 719 } |
720 | 720 |
721 void RenderWidgetHostViewAura::SetBounds(const gfx::Rect& rect) { | 721 void RenderWidgetHostViewAura::SetBounds(const gfx::Rect& rect) { |
722 if (HasDisplayPropertyChanged(window_)) | 722 if (HasDisplayPropertyChanged(window_)) |
723 host_->InvalidateScreenInfo(); | 723 host_->InvalidateScreenInfo(); |
724 | 724 |
725 window_->SetBounds(rect); | 725 window_->SetBounds(rect); |
726 host_->WasResized(); | 726 host_->WasResized(); |
727 MaybeCreateResizeLock(); | 727 MaybeCreateResizeLock(); |
728 if (touch_editing_client_) { | 728 if (touch_editing_client_) { |
729 touch_editing_client_->OnSelectionOrCursorChanged(selection_anchor_rect_, | 729 touch_editing_client_->OnSelectionOrCursorChanged(selection_anchor_rect_, |
730 selection_focus_rect_); | 730 selection_focus_rect_); |
731 } | 731 } |
732 } | 732 } |
733 | 733 |
734 void RenderWidgetHostViewAura::MaybeCreateResizeLock() { | 734 void RenderWidgetHostViewAura::MaybeCreateResizeLock() { |
735 if (!ShouldCreateResizeLock()) | 735 if (!ShouldCreateResizeLock()) |
736 return; | 736 return; |
737 DCHECK(window_->GetRootWindow()); | 737 DCHECK(window_->GetDispatcher()); |
738 DCHECK(window_->GetRootWindow()->compositor()); | 738 DCHECK(window_->GetDispatcher()->compositor()); |
739 | 739 |
740 // Listen to changes in the compositor lock state. | 740 // Listen to changes in the compositor lock state. |
741 ui::Compositor* compositor = window_->GetRootWindow()->compositor(); | 741 ui::Compositor* compositor = window_->GetDispatcher()->compositor(); |
742 if (!compositor->HasObserver(this)) | 742 if (!compositor->HasObserver(this)) |
743 compositor->AddObserver(this); | 743 compositor->AddObserver(this); |
744 | 744 |
745 bool defer_compositor_lock = | 745 bool defer_compositor_lock = |
746 can_lock_compositor_ == NO_PENDING_RENDERER_FRAME || | 746 can_lock_compositor_ == NO_PENDING_RENDERER_FRAME || |
747 can_lock_compositor_ == NO_PENDING_COMMIT; | 747 can_lock_compositor_ == NO_PENDING_COMMIT; |
748 | 748 |
749 if (can_lock_compositor_ == YES) | 749 if (can_lock_compositor_ == YES) |
750 can_lock_compositor_ = YES_DID_LOCK; | 750 can_lock_compositor_ = YES_DID_LOCK; |
751 | 751 |
(...skipping 17 matching lines...) Expand all Loading... |
769 | 769 |
770 if (host_->should_auto_resize()) | 770 if (host_->should_auto_resize()) |
771 return false; | 771 return false; |
772 if (!host_->is_accelerated_compositing_active()) | 772 if (!host_->is_accelerated_compositing_active()) |
773 return false; | 773 return false; |
774 | 774 |
775 gfx::Size desired_size = window_->bounds().size(); | 775 gfx::Size desired_size = window_->bounds().size(); |
776 if (desired_size == current_frame_size_) | 776 if (desired_size == current_frame_size_) |
777 return false; | 777 return false; |
778 | 778 |
779 aura::RootWindow* root_window = window_->GetRootWindow(); | 779 aura::WindowEventDispatcher* dispatcher = window_->GetDispatcher(); |
780 if (!root_window) | 780 if (!dispatcher) |
781 return false; | 781 return false; |
782 | 782 |
783 ui::Compositor* compositor = root_window->compositor(); | 783 ui::Compositor* compositor = dispatcher->compositor(); |
784 if (!compositor) | 784 if (!compositor) |
785 return false; | 785 return false; |
786 | 786 |
787 return true; | 787 return true; |
788 } | 788 } |
789 | 789 |
790 scoped_ptr<ResizeLock> RenderWidgetHostViewAura::CreateResizeLock( | 790 scoped_ptr<ResizeLock> RenderWidgetHostViewAura::CreateResizeLock( |
791 bool defer_compositor_lock) { | 791 bool defer_compositor_lock) { |
792 gfx::Size desired_size = window_->bounds().size(); | 792 gfx::Size desired_size = window_->bounds().size(); |
793 return scoped_ptr<ResizeLock>(new CompositorResizeLock( | 793 return scoped_ptr<ResizeLock>(new CompositorResizeLock( |
794 window_->GetRootWindow(), | 794 window_->GetDispatcher(), |
795 desired_size, | 795 desired_size, |
796 defer_compositor_lock, | 796 defer_compositor_lock, |
797 base::TimeDelta::FromMilliseconds(kResizeLockTimeoutMs))); | 797 base::TimeDelta::FromMilliseconds(kResizeLockTimeoutMs))); |
798 } | 798 } |
799 | 799 |
800 gfx::NativeView RenderWidgetHostViewAura::GetNativeView() const { | 800 gfx::NativeView RenderWidgetHostViewAura::GetNativeView() const { |
801 return window_; | 801 return window_; |
802 } | 802 } |
803 | 803 |
804 gfx::NativeViewId RenderWidgetHostViewAura::GetNativeViewId() const { | 804 gfx::NativeViewId RenderWidgetHostViewAura::GetNativeViewId() const { |
805 #if defined(OS_WIN) | 805 #if defined(OS_WIN) |
806 aura::RootWindow* root_window = window_->GetRootWindow(); | 806 aura::WindowEventDispatcher* dispatcher = window_->GetDispatcher(); |
807 if (root_window) { | 807 if (dispatcher) { |
808 HWND window = root_window->GetAcceleratedWidget(); | 808 HWND window = dispatcher->GetAcceleratedWidget(); |
809 return reinterpret_cast<gfx::NativeViewId>(window); | 809 return reinterpret_cast<gfx::NativeViewId>(window); |
810 } | 810 } |
811 #endif | 811 #endif |
812 return static_cast<gfx::NativeViewId>(NULL); | 812 return static_cast<gfx::NativeViewId>(NULL); |
813 } | 813 } |
814 | 814 |
815 gfx::NativeViewAccessible RenderWidgetHostViewAura::GetNativeViewAccessible() { | 815 gfx::NativeViewAccessible RenderWidgetHostViewAura::GetNativeViewAccessible() { |
816 #if defined(OS_WIN) | 816 #if defined(OS_WIN) |
817 aura::RootWindow* root_window = window_->GetRootWindow(); | 817 aura::WindowEventDispatcher* dispatcher = window_->GetDispatcher(); |
818 if (!root_window) | 818 if (!dispatcher) |
819 return static_cast<gfx::NativeViewAccessible>(NULL); | 819 return static_cast<gfx::NativeViewAccessible>(NULL); |
820 HWND hwnd = root_window->GetAcceleratedWidget(); | 820 HWND hwnd = dispatcher->GetAcceleratedWidget(); |
821 | 821 |
822 BrowserAccessibilityManager* manager = | 822 BrowserAccessibilityManager* manager = |
823 GetOrCreateBrowserAccessibilityManager(); | 823 GetOrCreateBrowserAccessibilityManager(); |
824 if (manager) | 824 if (manager) |
825 return manager->GetRoot()->ToBrowserAccessibilityWin(); | 825 return manager->GetRoot()->ToBrowserAccessibilityWin(); |
826 #endif | 826 #endif |
827 | 827 |
828 NOTIMPLEMENTED(); | 828 NOTIMPLEMENTED(); |
829 return static_cast<gfx::NativeViewAccessible>(NULL); | 829 return static_cast<gfx::NativeViewAccessible>(NULL); |
830 } | 830 } |
831 | 831 |
832 BrowserAccessibilityManager* | 832 BrowserAccessibilityManager* |
833 RenderWidgetHostViewAura::GetOrCreateBrowserAccessibilityManager() { | 833 RenderWidgetHostViewAura::GetOrCreateBrowserAccessibilityManager() { |
834 BrowserAccessibilityManager* manager = GetBrowserAccessibilityManager(); | 834 BrowserAccessibilityManager* manager = GetBrowserAccessibilityManager(); |
835 if (manager) | 835 if (manager) |
836 return manager; | 836 return manager; |
837 | 837 |
838 #if defined(OS_WIN) | 838 #if defined(OS_WIN) |
839 aura::RootWindow* root_window = window_->GetRootWindow(); | 839 aura::WindowEventDispatcher* dispatcher = window_->GetDispatcher(); |
840 if (!root_window) | 840 if (!dispatcher) |
841 return NULL; | 841 return NULL; |
842 HWND hwnd = root_window->GetAcceleratedWidget(); | 842 HWND hwnd = dispatcher->GetAcceleratedWidget(); |
843 | 843 |
844 // The accessible_parent may be NULL at this point. The WebContents will pass | 844 // The accessible_parent may be NULL at this point. The WebContents will pass |
845 // it down to this instance (by way of the RenderViewHost and | 845 // it down to this instance (by way of the RenderViewHost and |
846 // RenderWidgetHost) when it is known. This instance will then set it on its | 846 // RenderWidgetHost) when it is known. This instance will then set it on its |
847 // BrowserAccessibilityManager. | 847 // BrowserAccessibilityManager. |
848 gfx::NativeViewAccessible accessible_parent = | 848 gfx::NativeViewAccessible accessible_parent = |
849 host_->GetParentNativeViewAccessible(); | 849 host_->GetParentNativeViewAccessible(); |
850 | 850 |
851 manager = new BrowserAccessibilityManagerWin( | 851 manager = new BrowserAccessibilityManagerWin( |
852 hwnd, accessible_parent, | 852 hwnd, accessible_parent, |
(...skipping 10 matching lines...) Expand all Loading... |
863 void RenderWidgetHostViewAura::MovePluginWindows( | 863 void RenderWidgetHostViewAura::MovePluginWindows( |
864 const gfx::Vector2d& scroll_offset, | 864 const gfx::Vector2d& scroll_offset, |
865 const std::vector<WebPluginGeometry>& plugin_window_moves) { | 865 const std::vector<WebPluginGeometry>& plugin_window_moves) { |
866 #if defined(OS_WIN) | 866 #if defined(OS_WIN) |
867 // We need to clip the rectangle to the tab's viewport, otherwise we will draw | 867 // We need to clip the rectangle to the tab's viewport, otherwise we will draw |
868 // over the browser UI. | 868 // over the browser UI. |
869 if (!window_->GetRootWindow()) { | 869 if (!window_->GetRootWindow()) { |
870 DCHECK(plugin_window_moves.empty()); | 870 DCHECK(plugin_window_moves.empty()); |
871 return; | 871 return; |
872 } | 872 } |
873 HWND parent = window_->GetRootWindow()->GetAcceleratedWidget(); | 873 HWND parent = window_->GetDispatcher()->GetAcceleratedWidget(); |
874 gfx::Rect view_bounds = window_->GetBoundsInRootWindow(); | 874 gfx::Rect view_bounds = window_->GetBoundsInRootWindow(); |
875 std::vector<WebPluginGeometry> moves = plugin_window_moves; | 875 std::vector<WebPluginGeometry> moves = plugin_window_moves; |
876 | 876 |
877 gfx::Rect view_port(scroll_offset.x(), scroll_offset.y(), view_bounds.width(), | 877 gfx::Rect view_port(scroll_offset.x(), scroll_offset.y(), view_bounds.width(), |
878 view_bounds.height()); | 878 view_bounds.height()); |
879 | 879 |
880 for (size_t i = 0; i < moves.size(); ++i) { | 880 for (size_t i = 0; i < moves.size(); ++i) { |
881 gfx::Rect clip(moves[i].clip_rect); | 881 gfx::Rect clip(moves[i].clip_rect); |
882 gfx::Vector2d view_port_offset( | 882 gfx::Vector2d view_port_offset( |
883 moves[i].window_rect.OffsetFromOrigin() + scroll_offset); | 883 moves[i].window_rect.OffsetFromOrigin() + scroll_offset); |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1038 if (paint_canvas_) { | 1038 if (paint_canvas_) { |
1039 SkRect sk_clip_rect; | 1039 SkRect sk_clip_rect; |
1040 if (paint_canvas_->sk_canvas()->getClipBounds(&sk_clip_rect)) | 1040 if (paint_canvas_->sk_canvas()->getClipBounds(&sk_clip_rect)) |
1041 clip_rect = gfx::ToEnclosingRect(gfx::SkRectToRectF(sk_clip_rect)); | 1041 clip_rect = gfx::ToEnclosingRect(gfx::SkRectToRectF(sk_clip_rect)); |
1042 } | 1042 } |
1043 | 1043 |
1044 if (!scroll_rect.IsEmpty()) | 1044 if (!scroll_rect.IsEmpty()) |
1045 SchedulePaintIfNotInClip(scroll_rect, clip_rect); | 1045 SchedulePaintIfNotInClip(scroll_rect, clip_rect); |
1046 | 1046 |
1047 #if defined(OS_WIN) | 1047 #if defined(OS_WIN) |
1048 aura::RootWindow* root_window = window_->GetRootWindow(); | 1048 aura::WindowEventDispatcher* dispatcher = window_->GetDispatcher(); |
1049 #endif | 1049 #endif |
1050 for (size_t i = 0; i < copy_rects.size(); ++i) { | 1050 for (size_t i = 0; i < copy_rects.size(); ++i) { |
1051 gfx::Rect rect = gfx::SubtractRects(copy_rects[i], scroll_rect); | 1051 gfx::Rect rect = gfx::SubtractRects(copy_rects[i], scroll_rect); |
1052 if (rect.IsEmpty()) | 1052 if (rect.IsEmpty()) |
1053 continue; | 1053 continue; |
1054 | 1054 |
1055 SchedulePaintIfNotInClip(rect, clip_rect); | 1055 SchedulePaintIfNotInClip(rect, clip_rect); |
1056 | 1056 |
1057 #if defined(OS_WIN) | 1057 #if defined(OS_WIN) |
1058 if (root_window) { | 1058 if (dispatcher) { |
1059 // Send the invalid rect in screen coordinates. | 1059 // Send the invalid rect in screen coordinates. |
1060 gfx::Rect screen_rect = GetViewBounds(); | 1060 gfx::Rect screen_rect = GetViewBounds(); |
1061 gfx::Rect invalid_screen_rect(rect); | 1061 gfx::Rect invalid_screen_rect(rect); |
1062 invalid_screen_rect.Offset(screen_rect.x(), screen_rect.y()); | 1062 invalid_screen_rect.Offset(screen_rect.x(), screen_rect.y()); |
1063 HWND hwnd = root_window->GetAcceleratedWidget(); | 1063 HWND hwnd = dispatcher->GetAcceleratedWidget(); |
1064 PaintPluginWindowsHelper(hwnd, invalid_screen_rect); | 1064 PaintPluginWindowsHelper(hwnd, invalid_screen_rect); |
1065 } | 1065 } |
1066 #endif // defined(OS_WIN) | 1066 #endif // defined(OS_WIN) |
1067 } | 1067 } |
1068 } | 1068 } |
1069 | 1069 |
1070 void RenderWidgetHostViewAura::RenderProcessGone(base::TerminationStatus status, | 1070 void RenderWidgetHostViewAura::RenderProcessGone(base::TerminationStatus status, |
1071 int error_code) { | 1071 int error_code) { |
1072 UpdateCursorIfOverSelf(); | 1072 UpdateCursorIfOverSelf(); |
1073 Destroy(); | 1073 Destroy(); |
1074 } | 1074 } |
1075 | 1075 |
1076 void RenderWidgetHostViewAura::Destroy() { | 1076 void RenderWidgetHostViewAura::Destroy() { |
1077 // Beware, this function is not called on all destruction paths. It will | 1077 // Beware, this function is not called on all destruction paths. It will |
1078 // implicitly end up calling ~RenderWidgetHostViewAura though, so all | 1078 // implicitly end up calling ~RenderWidgetHostViewAura though, so all |
1079 // destruction/cleanup code should happen there, not here. | 1079 // destruction/cleanup code should happen there, not here. |
1080 in_shutdown_ = true; | 1080 in_shutdown_ = true; |
1081 delete window_; | 1081 delete window_; |
1082 } | 1082 } |
1083 | 1083 |
1084 void RenderWidgetHostViewAura::SetTooltipText(const string16& tooltip_text) { | 1084 void RenderWidgetHostViewAura::SetTooltipText(const string16& tooltip_text) { |
1085 tooltip_ = tooltip_text; | 1085 tooltip_ = tooltip_text; |
1086 aura::RootWindow* root_window = window_->GetRootWindow(); | 1086 aura::Window* root_window = window_->GetRootWindow(); |
1087 aura::client::TooltipClient* tooltip_client = | 1087 aura::client::TooltipClient* tooltip_client = |
1088 aura::client::GetTooltipClient(root_window); | 1088 aura::client::GetTooltipClient(root_window); |
1089 if (tooltip_client) { | 1089 if (tooltip_client) { |
1090 tooltip_client->UpdateTooltip(window_); | 1090 tooltip_client->UpdateTooltip(window_); |
1091 // Content tooltips should be visible indefinitely. | 1091 // Content tooltips should be visible indefinitely. |
1092 tooltip_client->SetTooltipShownTimeout(window_, 0); | 1092 tooltip_client->SetTooltipShownTimeout(window_, 0); |
1093 } | 1093 } |
1094 } | 1094 } |
1095 | 1095 |
1096 void RenderWidgetHostViewAura::SelectionChanged(const string16& text, | 1096 void RenderWidgetHostViewAura::SelectionChanged(const string16& text, |
(...skipping 25 matching lines...) Expand all Loading... |
1122 if (GetInputMethod()) | 1122 if (GetInputMethod()) |
1123 GetInputMethod()->OnCaretBoundsChanged(this); | 1123 GetInputMethod()->OnCaretBoundsChanged(this); |
1124 | 1124 |
1125 if (touch_editing_client_) { | 1125 if (touch_editing_client_) { |
1126 touch_editing_client_->OnSelectionOrCursorChanged(selection_anchor_rect_, | 1126 touch_editing_client_->OnSelectionOrCursorChanged(selection_anchor_rect_, |
1127 selection_focus_rect_); | 1127 selection_focus_rect_); |
1128 } | 1128 } |
1129 } | 1129 } |
1130 | 1130 |
1131 void RenderWidgetHostViewAura::ScrollOffsetChanged() { | 1131 void RenderWidgetHostViewAura::ScrollOffsetChanged() { |
1132 aura::RootWindow* root = window_->GetRootWindow(); | 1132 aura::Window* root = window_->GetRootWindow(); |
1133 if (!root) | 1133 if (!root) |
1134 return; | 1134 return; |
1135 aura::client::CursorClient* cursor_client = | 1135 aura::client::CursorClient* cursor_client = |
1136 aura::client::GetCursorClient(root); | 1136 aura::client::GetCursorClient(root); |
1137 if (cursor_client && !cursor_client->IsCursorVisible()) | 1137 if (cursor_client && !cursor_client->IsCursorVisible()) |
1138 cursor_client->DisableMouseEvents(); | 1138 cursor_client->DisableMouseEvents(); |
1139 } | 1139 } |
1140 | 1140 |
1141 BackingStore* RenderWidgetHostViewAura::AllocBackingStore( | 1141 BackingStore* RenderWidgetHostViewAura::AllocBackingStore( |
1142 const gfx::Size& size) { | 1142 const gfx::Size& size) { |
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1356 | 1356 |
1357 void RenderWidgetHostViewAura::UpdateConstrainedWindowRects( | 1357 void RenderWidgetHostViewAura::UpdateConstrainedWindowRects( |
1358 const std::vector<gfx::Rect>& rects) { | 1358 const std::vector<gfx::Rect>& rects) { |
1359 constrained_rects_ = rects; | 1359 constrained_rects_ = rects; |
1360 UpdateCutoutRects(); | 1360 UpdateCutoutRects(); |
1361 } | 1361 } |
1362 | 1362 |
1363 void RenderWidgetHostViewAura::UpdateCutoutRects() { | 1363 void RenderWidgetHostViewAura::UpdateCutoutRects() { |
1364 if (!window_->GetRootWindow()) | 1364 if (!window_->GetRootWindow()) |
1365 return; | 1365 return; |
1366 HWND parent = window_->GetRootWindow()->GetAcceleratedWidget(); | 1366 HWND parent = window_->GetDispatcher()->GetAcceleratedWidget(); |
1367 CutoutRectsParams params; | 1367 CutoutRectsParams params; |
1368 params.widget = this; | 1368 params.widget = this; |
1369 params.cutout_rects.assign(transient_rects_.begin(), transient_rects_.end()); | 1369 params.cutout_rects.assign(transient_rects_.begin(), transient_rects_.end()); |
1370 params.cutout_rects.insert(params.cutout_rects.end(), | 1370 params.cutout_rects.insert(params.cutout_rects.end(), |
1371 constrained_rects_.begin(), | 1371 constrained_rects_.begin(), |
1372 constrained_rects_.end()); | 1372 constrained_rects_.end()); |
1373 params.geometry = &plugin_window_moves_; | 1373 params.geometry = &plugin_window_moves_; |
1374 LPARAM lparam = reinterpret_cast<LPARAM>(¶ms); | 1374 LPARAM lparam = reinterpret_cast<LPARAM>(¶ms); |
1375 EnumChildWindows(parent, SetCutoutRectsCallback, lparam); | 1375 EnumChildWindows(parent, SetCutoutRectsCallback, lparam); |
1376 } | 1376 } |
(...skipping 676 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2053 GetScreenInfoForWindow(results, window_->GetRootWindow() ? window_ : NULL); | 2053 GetScreenInfoForWindow(results, window_->GetRootWindow() ? window_ : NULL); |
2054 } | 2054 } |
2055 | 2055 |
2056 gfx::Rect RenderWidgetHostViewAura::GetBoundsInRootWindow() { | 2056 gfx::Rect RenderWidgetHostViewAura::GetBoundsInRootWindow() { |
2057 #if defined(OS_WIN) | 2057 #if defined(OS_WIN) |
2058 // aura::Window::GetBoundsInScreen doesn't take non-client area into | 2058 // aura::Window::GetBoundsInScreen doesn't take non-client area into |
2059 // account. | 2059 // account. |
2060 RECT window_rect = {0}; | 2060 RECT window_rect = {0}; |
2061 | 2061 |
2062 aura::Window* top_level = window_->GetToplevelWindow(); | 2062 aura::Window* top_level = window_->GetToplevelWindow(); |
2063 aura::RootWindow* root_window = top_level->GetRootWindow(); | 2063 aura::WindowEventDispatcher* dispatcher = top_level->GetDispatcher(); |
2064 if (!root_window) | 2064 if (!dispatcher) |
2065 return top_level->GetBoundsInScreen(); | 2065 return top_level->GetBoundsInScreen(); |
2066 HWND hwnd = root_window->GetAcceleratedWidget(); | 2066 HWND hwnd = dispatcher->GetAcceleratedWidget(); |
2067 ::GetWindowRect(hwnd, &window_rect); | 2067 ::GetWindowRect(hwnd, &window_rect); |
2068 gfx::Rect rect(window_rect); | 2068 gfx::Rect rect(window_rect); |
2069 | 2069 |
2070 // Maximized windows are outdented from the work area by the frame thickness | 2070 // Maximized windows are outdented from the work area by the frame thickness |
2071 // even though this "frame" is not painted. This confuses code (and people) | 2071 // even though this "frame" is not painted. This confuses code (and people) |
2072 // that think of a maximized window as corresponding exactly to the work area. | 2072 // that think of a maximized window as corresponding exactly to the work area. |
2073 // Correct for this by subtracting the frame thickness back off. | 2073 // Correct for this by subtracting the frame thickness back off. |
2074 if (::IsZoomed(hwnd)) { | 2074 if (::IsZoomed(hwnd)) { |
2075 rect.Inset(GetSystemMetrics(SM_CXSIZEFRAME), | 2075 rect.Inset(GetSystemMetrics(SM_CXSIZEFRAME), |
2076 GetSystemMetrics(SM_CYSIZEFRAME)); | 2076 GetSystemMetrics(SM_CYSIZEFRAME)); |
(...skipping 11 matching lines...) Expand all Loading... |
2088 touch_editing_client_->GestureEventAck(gesture_event_type); | 2088 touch_editing_client_->GestureEventAck(gesture_event_type); |
2089 } | 2089 } |
2090 | 2090 |
2091 void RenderWidgetHostViewAura::ProcessAckedTouchEvent( | 2091 void RenderWidgetHostViewAura::ProcessAckedTouchEvent( |
2092 const TouchEventWithLatencyInfo& touch, InputEventAckState ack_result) { | 2092 const TouchEventWithLatencyInfo& touch, InputEventAckState ack_result) { |
2093 ScopedVector<ui::TouchEvent> events; | 2093 ScopedVector<ui::TouchEvent> events; |
2094 if (!MakeUITouchEventsFromWebTouchEvents(touch, &events, | 2094 if (!MakeUITouchEventsFromWebTouchEvents(touch, &events, |
2095 SCREEN_COORDINATES)) | 2095 SCREEN_COORDINATES)) |
2096 return; | 2096 return; |
2097 | 2097 |
2098 aura::RootWindow* root = window_->GetRootWindow(); | 2098 aura::WindowEventDispatcher* dispatcher = window_->GetDispatcher(); |
2099 // |root| is NULL during tests. | 2099 // |dispatcher| is NULL during tests. |
2100 if (!root) | 2100 if (!dispatcher) |
2101 return; | 2101 return; |
2102 | 2102 |
2103 ui::EventResult result = (ack_result == | 2103 ui::EventResult result = (ack_result == |
2104 INPUT_EVENT_ACK_STATE_CONSUMED) ? ui::ER_HANDLED : ui::ER_UNHANDLED; | 2104 INPUT_EVENT_ACK_STATE_CONSUMED) ? ui::ER_HANDLED : ui::ER_UNHANDLED; |
2105 for (ScopedVector<ui::TouchEvent>::iterator iter = events.begin(), | 2105 for (ScopedVector<ui::TouchEvent>::iterator iter = events.begin(), |
2106 end = events.end(); iter != end; ++iter) { | 2106 end = events.end(); iter != end; ++iter) { |
2107 root->ProcessedTouchEvent((*iter), window_, result); | 2107 dispatcher->ProcessedTouchEvent((*iter), window_, result); |
2108 } | 2108 } |
2109 } | 2109 } |
2110 | 2110 |
2111 SyntheticGesture* RenderWidgetHostViewAura::CreateSmoothScrollGesture( | 2111 SyntheticGesture* RenderWidgetHostViewAura::CreateSmoothScrollGesture( |
2112 bool scroll_down, | 2112 bool scroll_down, |
2113 int pixels_to_scroll, | 2113 int pixels_to_scroll, |
2114 int mouse_event_x, | 2114 int mouse_event_x, |
2115 int mouse_event_y) { | 2115 int mouse_event_y) { |
2116 return new TouchSmoothScrollGestureAura(scroll_down, | 2116 return new TouchSmoothScrollGestureAura(scroll_down, |
2117 pixels_to_scroll, | 2117 pixels_to_scroll, |
(...skipping 24 matching lines...) Expand all Loading... |
2142 if (shared_surface_handle_.is_null()) { | 2142 if (shared_surface_handle_.is_null()) { |
2143 ImageTransportFactory* factory = ImageTransportFactory::GetInstance(); | 2143 ImageTransportFactory* factory = ImageTransportFactory::GetInstance(); |
2144 shared_surface_handle_ = factory->CreateSharedSurfaceHandle(); | 2144 shared_surface_handle_ = factory->CreateSharedSurfaceHandle(); |
2145 if (!shared_surface_handle_.is_null()) | 2145 if (!shared_surface_handle_.is_null()) |
2146 factory->AddObserver(this); | 2146 factory->AddObserver(this); |
2147 } | 2147 } |
2148 return shared_surface_handle_; | 2148 return shared_surface_handle_; |
2149 } | 2149 } |
2150 | 2150 |
2151 bool RenderWidgetHostViewAura::LockMouse() { | 2151 bool RenderWidgetHostViewAura::LockMouse() { |
2152 aura::RootWindow* root_window = window_->GetRootWindow(); | 2152 aura::Window* root_window = window_->GetRootWindow(); |
2153 if (!root_window) | 2153 if (!root_window) |
2154 return false; | 2154 return false; |
2155 | 2155 |
2156 if (mouse_locked_) | 2156 if (mouse_locked_) |
2157 return true; | 2157 return true; |
2158 | 2158 |
2159 mouse_locked_ = true; | 2159 mouse_locked_ = true; |
2160 #if !defined(OS_WIN) | 2160 #if !defined(OS_WIN) |
2161 window_->SetCapture(); | 2161 window_->SetCapture(); |
2162 #endif | 2162 #endif |
2163 aura::client::CursorClient* cursor_client = | 2163 aura::client::CursorClient* cursor_client = |
2164 aura::client::GetCursorClient(root_window); | 2164 aura::client::GetCursorClient(root_window); |
2165 if (cursor_client) { | 2165 if (cursor_client) { |
2166 cursor_client->HideCursor(); | 2166 cursor_client->HideCursor(); |
2167 cursor_client->LockCursor(); | 2167 cursor_client->LockCursor(); |
2168 } | 2168 } |
2169 | 2169 |
2170 if (ShouldMoveToCenter()) { | 2170 if (ShouldMoveToCenter()) { |
2171 synthetic_move_sent_ = true; | 2171 synthetic_move_sent_ = true; |
2172 window_->MoveCursorTo(gfx::Rect(window_->bounds().size()).CenterPoint()); | 2172 window_->MoveCursorTo(gfx::Rect(window_->bounds().size()).CenterPoint()); |
2173 } | 2173 } |
2174 if (aura::client::GetTooltipClient(root_window)) | 2174 if (aura::client::GetTooltipClient(root_window)) |
2175 aura::client::GetTooltipClient(root_window)->SetTooltipsEnabled(false); | 2175 aura::client::GetTooltipClient(root_window)->SetTooltipsEnabled(false); |
2176 return true; | 2176 return true; |
2177 } | 2177 } |
2178 | 2178 |
2179 void RenderWidgetHostViewAura::UnlockMouse() { | 2179 void RenderWidgetHostViewAura::UnlockMouse() { |
2180 aura::RootWindow* root_window = window_->GetRootWindow(); | 2180 aura::Window* root_window = window_->GetRootWindow(); |
2181 if (!mouse_locked_ || !root_window) | 2181 if (!mouse_locked_ || !root_window) |
2182 return; | 2182 return; |
2183 | 2183 |
2184 mouse_locked_ = false; | 2184 mouse_locked_ = false; |
2185 | 2185 |
2186 #if !defined(OS_WIN) | 2186 #if !defined(OS_WIN) |
2187 window_->ReleaseCapture(); | 2187 window_->ReleaseCapture(); |
2188 #endif | 2188 #endif |
2189 window_->MoveCursorTo(unlocked_mouse_position_); | 2189 window_->MoveCursorTo(unlocked_mouse_position_); |
2190 aura::client::CursorClient* cursor_client = | 2190 aura::client::CursorClient* cursor_client = |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2279 | 2279 |
2280 bool RenderWidgetHostViewAura::CanComposeInline() const { | 2280 bool RenderWidgetHostViewAura::CanComposeInline() const { |
2281 return can_compose_inline_; | 2281 return can_compose_inline_; |
2282 } | 2282 } |
2283 | 2283 |
2284 gfx::Rect RenderWidgetHostViewAura::ConvertRectToScreen( | 2284 gfx::Rect RenderWidgetHostViewAura::ConvertRectToScreen( |
2285 const gfx::Rect& rect) const { | 2285 const gfx::Rect& rect) const { |
2286 gfx::Point origin = rect.origin(); | 2286 gfx::Point origin = rect.origin(); |
2287 gfx::Point end = gfx::Point(rect.right(), rect.bottom()); | 2287 gfx::Point end = gfx::Point(rect.right(), rect.bottom()); |
2288 | 2288 |
2289 aura::RootWindow* root_window = window_->GetRootWindow(); | 2289 aura::Window* root_window = window_->GetRootWindow(); |
2290 if (!root_window) | 2290 if (!root_window) |
2291 return rect; | 2291 return rect; |
2292 aura::client::ScreenPositionClient* screen_position_client = | 2292 aura::client::ScreenPositionClient* screen_position_client = |
2293 aura::client::GetScreenPositionClient(root_window); | 2293 aura::client::GetScreenPositionClient(root_window); |
2294 if (!screen_position_client) | 2294 if (!screen_position_client) |
2295 return rect; | 2295 return rect; |
2296 screen_position_client->ConvertPointToScreen(window_, &origin); | 2296 screen_position_client->ConvertPointToScreen(window_, &origin); |
2297 screen_position_client->ConvertPointToScreen(window_, &end); | 2297 screen_position_client->ConvertPointToScreen(window_, &end); |
2298 return gfx::Rect(origin.x(), | 2298 return gfx::Rect(origin.x(), |
2299 origin.y(), | 2299 origin.y(), |
2300 end.x() - origin.x(), | 2300 end.x() - origin.x(), |
2301 end.y() - origin.y()); | 2301 end.y() - origin.y()); |
2302 } | 2302 } |
2303 | 2303 |
2304 gfx::Rect RenderWidgetHostViewAura::ConvertRectFromScreen( | 2304 gfx::Rect RenderWidgetHostViewAura::ConvertRectFromScreen( |
2305 const gfx::Rect& rect) const { | 2305 const gfx::Rect& rect) const { |
2306 gfx::Point origin = rect.origin(); | 2306 gfx::Point origin = rect.origin(); |
2307 gfx::Point end = gfx::Point(rect.right(), rect.bottom()); | 2307 gfx::Point end = gfx::Point(rect.right(), rect.bottom()); |
2308 | 2308 |
2309 aura::RootWindow* root_window = window_->GetRootWindow(); | 2309 aura::Window* root_window = window_->GetRootWindow(); |
2310 if (root_window) { | 2310 if (root_window) { |
2311 aura::client::ScreenPositionClient* screen_position_client = | 2311 aura::client::ScreenPositionClient* screen_position_client = |
2312 aura::client::GetScreenPositionClient(root_window); | 2312 aura::client::GetScreenPositionClient(root_window); |
2313 screen_position_client->ConvertPointFromScreen(window_, &origin); | 2313 screen_position_client->ConvertPointFromScreen(window_, &origin); |
2314 screen_position_client->ConvertPointFromScreen(window_, &end); | 2314 screen_position_client->ConvertPointFromScreen(window_, &end); |
2315 return gfx::Rect(origin.x(), | 2315 return gfx::Rect(origin.x(), |
2316 origin.y(), | 2316 origin.y(), |
2317 end.x() - origin.x(), | 2317 end.x() - origin.x(), |
2318 end.y() - origin.y()); | 2318 end.y() - origin.y()); |
2319 } | 2319 } |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2545 } | 2545 } |
2546 | 2546 |
2547 void RenderWidgetHostViewAura::OnWindowDestroying() { | 2547 void RenderWidgetHostViewAura::OnWindowDestroying() { |
2548 #if defined(OS_WIN) | 2548 #if defined(OS_WIN) |
2549 HWND parent = NULL; | 2549 HWND parent = NULL; |
2550 // If the tab was hidden and it's closed, host_->is_hidden would have been | 2550 // If the tab was hidden and it's closed, host_->is_hidden would have been |
2551 // reset to false in RenderWidgetHostImpl::RendererExited. | 2551 // reset to false in RenderWidgetHostImpl::RendererExited. |
2552 if (!window_->GetRootWindow() || host_->is_hidden()) { | 2552 if (!window_->GetRootWindow() || host_->is_hidden()) { |
2553 parent = ui::GetHiddenWindow(); | 2553 parent = ui::GetHiddenWindow(); |
2554 } else { | 2554 } else { |
2555 parent = window_->GetRootWindow()->GetAcceleratedWidget(); | 2555 parent = window_->GetDispatcher()->GetAcceleratedWidget(); |
2556 } | 2556 } |
2557 LPARAM lparam = reinterpret_cast<LPARAM>(this); | 2557 LPARAM lparam = reinterpret_cast<LPARAM>(this); |
2558 EnumChildWindows(parent, WindowDestroyingCallback, lparam); | 2558 EnumChildWindows(parent, WindowDestroyingCallback, lparam); |
2559 #endif | 2559 #endif |
2560 | 2560 |
2561 // Make sure that the input method no longer references to this object before | 2561 // Make sure that the input method no longer references to this object before |
2562 // this object is removed from the root window (i.e. this object loses access | 2562 // this object is removed from the root window (i.e. this object loses access |
2563 // to the input method). | 2563 // to the input method). |
2564 ui::InputMethod* input_method = GetInputMethod(); | 2564 ui::InputMethod* input_method = GetInputMethod(); |
2565 if (input_method) | 2565 if (input_method) |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2749 event->type() == ui::ET_MOUSE_MOVED)) { | 2749 event->type() == ui::ET_MOUSE_MOVED)) { |
2750 event->StopPropagation(); | 2750 event->StopPropagation(); |
2751 return; | 2751 return; |
2752 } | 2752 } |
2753 | 2753 |
2754 if (event->type() == ui::ET_MOUSEWHEEL) { | 2754 if (event->type() == ui::ET_MOUSEWHEEL) { |
2755 #if defined(OS_WIN) | 2755 #if defined(OS_WIN) |
2756 // We get mouse wheel/scroll messages even if we are not in the foreground. | 2756 // We get mouse wheel/scroll messages even if we are not in the foreground. |
2757 // So here we check if we have any owned popup windows in the foreground and | 2757 // So here we check if we have any owned popup windows in the foreground and |
2758 // dismiss them. | 2758 // dismiss them. |
2759 aura::RootWindow* root_window = window_->GetRootWindow(); | 2759 aura::WindowEventDispatcher* dispatcher = window_->GetDispatcher(); |
2760 if (root_window) { | 2760 if (dispatcher) { |
2761 HWND parent = root_window->GetAcceleratedWidget(); | 2761 HWND parent = dispatcher->GetAcceleratedWidget(); |
2762 HWND toplevel_hwnd = ::GetAncestor(parent, GA_ROOT); | 2762 HWND toplevel_hwnd = ::GetAncestor(parent, GA_ROOT); |
2763 EnumThreadWindows(GetCurrentThreadId(), | 2763 EnumThreadWindows(GetCurrentThreadId(), |
2764 DismissOwnedPopups, | 2764 DismissOwnedPopups, |
2765 reinterpret_cast<LPARAM>(toplevel_hwnd)); | 2765 reinterpret_cast<LPARAM>(toplevel_hwnd)); |
2766 } | 2766 } |
2767 #endif | 2767 #endif |
2768 WebKit::WebMouseWheelEvent mouse_wheel_event = | 2768 WebKit::WebMouseWheelEvent mouse_wheel_event = |
2769 MakeWebMouseWheelEvent(static_cast<ui::MouseWheelEvent*>(event)); | 2769 MakeWebMouseWheelEvent(static_cast<ui::MouseWheelEvent*>(event)); |
2770 if (mouse_wheel_event.deltaX != 0 || mouse_wheel_event.deltaY != 0) | 2770 if (mouse_wheel_event.deltaX != 0 || mouse_wheel_event.deltaY != 0) |
2771 host_->ForwardWheelEvent(mouse_wheel_event); | 2771 host_->ForwardWheelEvent(mouse_wheel_event); |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2906 | 2906 |
2907 // If a gesture is not processed by the webpage, then WebKit processes it | 2907 // If a gesture is not processed by the webpage, then WebKit processes it |
2908 // (e.g. generates synthetic mouse events). | 2908 // (e.g. generates synthetic mouse events). |
2909 event->SetHandled(); | 2909 event->SetHandled(); |
2910 } | 2910 } |
2911 | 2911 |
2912 //////////////////////////////////////////////////////////////////////////////// | 2912 //////////////////////////////////////////////////////////////////////////////// |
2913 // RenderWidgetHostViewAura, aura::client::ActivationDelegate implementation: | 2913 // RenderWidgetHostViewAura, aura::client::ActivationDelegate implementation: |
2914 | 2914 |
2915 bool RenderWidgetHostViewAura::ShouldActivate() const { | 2915 bool RenderWidgetHostViewAura::ShouldActivate() const { |
2916 aura::RootWindow* root_window = window_->GetRootWindow(); | 2916 aura::WindowEventDispatcher* dispatcher = window_->GetDispatcher(); |
2917 if (!root_window) | 2917 if (!dispatcher) |
2918 return true; | 2918 return true; |
2919 const ui::Event* event = root_window->current_event(); | 2919 const ui::Event* event = dispatcher->current_event(); |
2920 if (!event) | 2920 if (!event) |
2921 return true; | 2921 return true; |
2922 return is_fullscreen_; | 2922 return is_fullscreen_; |
2923 } | 2923 } |
2924 | 2924 |
2925 //////////////////////////////////////////////////////////////////////////////// | 2925 //////////////////////////////////////////////////////////////////////////////// |
2926 // RenderWidgetHostViewAura, | 2926 // RenderWidgetHostViewAura, |
2927 // aura::client::ActivationChangeObserver implementation: | 2927 // aura::client::ActivationChangeObserver implementation: |
2928 | 2928 |
2929 void RenderWidgetHostViewAura::OnWindowActivated(aura::Window* gained_active, | 2929 void RenderWidgetHostViewAura::OnWindowActivated(aura::Window* gained_active, |
2930 aura::Window* lost_active) { | 2930 aura::Window* lost_active) { |
2931 DCHECK(window_ == gained_active || window_ == lost_active); | 2931 DCHECK(window_ == gained_active || window_ == lost_active); |
2932 if (window_ == gained_active) { | 2932 if (window_ == gained_active) { |
2933 const ui::Event* event = window_->GetRootWindow()->current_event(); | 2933 const ui::Event* event = window_->GetDispatcher()->current_event(); |
2934 if (event && PointerEventActivates(*event)) | 2934 if (event && PointerEventActivates(*event)) |
2935 host_->OnPointerEventActivate(); | 2935 host_->OnPointerEventActivate(); |
2936 } | 2936 } |
2937 } | 2937 } |
2938 | 2938 |
2939 //////////////////////////////////////////////////////////////////////////////// | 2939 //////////////////////////////////////////////////////////////////////////////// |
2940 // RenderWidgetHostViewAura, aura::client::CursorClientObserver implementation: | 2940 // RenderWidgetHostViewAura, aura::client::CursorClientObserver implementation: |
2941 | 2941 |
2942 void RenderWidgetHostViewAura::OnCursorVisibilityChanged(bool is_visible) { | 2942 void RenderWidgetHostViewAura::OnCursorVisibilityChanged(bool is_visible) { |
2943 NotifyRendererOfCursorVisibilityState(is_visible); | 2943 NotifyRendererOfCursorVisibilityState(is_visible); |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3168 touch_editing_client_->OnViewDestroyed(); | 3168 touch_editing_client_->OnViewDestroyed(); |
3169 if (!shared_surface_handle_.is_null()) { | 3169 if (!shared_surface_handle_.is_null()) { |
3170 ImageTransportFactory* factory = ImageTransportFactory::GetInstance(); | 3170 ImageTransportFactory* factory = ImageTransportFactory::GetInstance(); |
3171 factory->DestroySharedSurfaceHandle(shared_surface_handle_); | 3171 factory->DestroySharedSurfaceHandle(shared_surface_handle_); |
3172 factory->RemoveObserver(this); | 3172 factory->RemoveObserver(this); |
3173 } | 3173 } |
3174 window_observer_.reset(); | 3174 window_observer_.reset(); |
3175 #if defined(OS_WIN) | 3175 #if defined(OS_WIN) |
3176 transient_observer_.reset(); | 3176 transient_observer_.reset(); |
3177 #endif | 3177 #endif |
3178 if (window_->GetRootWindow()) | 3178 if (window_->GetDispatcher()) |
3179 window_->GetRootWindow()->RemoveRootWindowObserver(this); | 3179 window_->GetDispatcher()->RemoveRootWindowObserver(this); |
3180 UnlockMouse(); | 3180 UnlockMouse(); |
3181 if (popup_type_ != WebKit::WebPopupTypeNone && popup_parent_host_view_) { | 3181 if (popup_type_ != WebKit::WebPopupTypeNone && popup_parent_host_view_) { |
3182 DCHECK(popup_parent_host_view_->popup_child_host_view_ == NULL || | 3182 DCHECK(popup_parent_host_view_->popup_child_host_view_ == NULL || |
3183 popup_parent_host_view_->popup_child_host_view_ == this); | 3183 popup_parent_host_view_->popup_child_host_view_ == this); |
3184 popup_parent_host_view_->popup_child_host_view_ = NULL; | 3184 popup_parent_host_view_->popup_child_host_view_ = NULL; |
3185 } | 3185 } |
3186 if (popup_child_host_view_) { | 3186 if (popup_child_host_view_) { |
3187 DCHECK(popup_child_host_view_->popup_parent_host_view_ == NULL || | 3187 DCHECK(popup_child_host_view_->popup_parent_host_view_ == NULL || |
3188 popup_child_host_view_->popup_parent_host_view_ == this); | 3188 popup_child_host_view_->popup_parent_host_view_ == this); |
3189 popup_child_host_view_->popup_parent_host_view_ = NULL; | 3189 popup_child_host_view_->popup_parent_host_view_ = NULL; |
3190 } | 3190 } |
3191 aura::client::SetTooltipText(window_, NULL); | 3191 aura::client::SetTooltipText(window_, NULL); |
3192 gfx::Screen::GetScreenFor(window_)->RemoveObserver(this); | 3192 gfx::Screen::GetScreenFor(window_)->RemoveObserver(this); |
3193 | 3193 |
3194 // This call is usually no-op since |this| object is already removed from the | 3194 // This call is usually no-op since |this| object is already removed from the |
3195 // Aura root window and we don't have a way to get an input method object | 3195 // Aura root window and we don't have a way to get an input method object |
3196 // associated with the window, but just in case. | 3196 // associated with the window, but just in case. |
3197 DetachFromInputMethod(); | 3197 DetachFromInputMethod(); |
3198 | 3198 |
3199 if (resource_collection_.get()) | 3199 if (resource_collection_.get()) |
3200 resource_collection_->SetClient(NULL); | 3200 resource_collection_->SetClient(NULL); |
3201 } | 3201 } |
3202 | 3202 |
3203 void RenderWidgetHostViewAura::UpdateCursorIfOverSelf() { | 3203 void RenderWidgetHostViewAura::UpdateCursorIfOverSelf() { |
3204 const gfx::Point screen_point = | 3204 const gfx::Point screen_point = |
3205 gfx::Screen::GetScreenFor(GetNativeView())->GetCursorScreenPoint(); | 3205 gfx::Screen::GetScreenFor(GetNativeView())->GetCursorScreenPoint(); |
3206 aura::RootWindow* root_window = window_->GetRootWindow(); | 3206 aura::Window* root_window = window_->GetRootWindow(); |
3207 if (!root_window) | 3207 if (!root_window) |
3208 return; | 3208 return; |
3209 | 3209 |
3210 gfx::Rect screen_rect = GetViewBounds(); | 3210 gfx::Rect screen_rect = GetViewBounds(); |
3211 gfx::Point local_point = screen_point; | 3211 gfx::Point local_point = screen_point; |
3212 local_point.Offset(-screen_rect.x(), -screen_rect.y()); | 3212 local_point.Offset(-screen_rect.x(), -screen_rect.y()); |
3213 | 3213 |
3214 #if defined(OS_WIN) | 3214 #if defined(OS_WIN) |
3215 // If there's another toplevel window above us at this point (for example a | 3215 // If there's another toplevel window above us at this point (for example a |
3216 // menu), we don't want to update the cursor. | 3216 // menu), we don't want to update the cursor. |
3217 POINT windows_point = { screen_point.x(), screen_point.y() }; | 3217 POINT windows_point = { screen_point.x(), screen_point.y() }; |
3218 if (root_window->GetAcceleratedWidget() != ::WindowFromPoint(windows_point)) | 3218 aura::WindowEventDispatcher* dispatcher = root_window->GetDispatcher(); |
| 3219 if (dispatcher->GetAcceleratedWidget() != ::WindowFromPoint(windows_point)) |
3219 return; | 3220 return; |
3220 #endif | 3221 #endif |
3221 if (root_window->GetEventHandlerForPoint(local_point) != window_) | 3222 if (root_window->GetEventHandlerForPoint(local_point) != window_) |
3222 return; | 3223 return; |
3223 | 3224 |
3224 gfx::NativeCursor cursor = current_cursor_.GetNativeCursor(); | 3225 gfx::NativeCursor cursor = current_cursor_.GetNativeCursor(); |
3225 // Do not show loading cursor when the cursor is currently hidden. | 3226 // Do not show loading cursor when the cursor is currently hidden. |
3226 if (is_loading_ && cursor != ui::kCursorNone) | 3227 if (is_loading_ && cursor != ui::kCursorNone) |
3227 cursor = ui::kCursorPointer; | 3228 cursor = ui::kCursorPointer; |
3228 | 3229 |
3229 aura::client::CursorClient* cursor_client = | 3230 aura::client::CursorClient* cursor_client = |
3230 aura::client::GetCursorClient(root_window); | 3231 aura::client::GetCursorClient(root_window); |
3231 if (cursor_client) { | 3232 if (cursor_client) { |
3232 cursor_client->SetCursor(cursor); | 3233 cursor_client->SetCursor(cursor); |
3233 } | 3234 } |
3234 } | 3235 } |
3235 | 3236 |
3236 ui::InputMethod* RenderWidgetHostViewAura::GetInputMethod() const { | 3237 ui::InputMethod* RenderWidgetHostViewAura::GetInputMethod() const { |
3237 aura::RootWindow* root_window = window_->GetRootWindow(); | 3238 aura::Window* root_window = window_->GetRootWindow(); |
3238 if (!root_window) | 3239 if (!root_window) |
3239 return NULL; | 3240 return NULL; |
3240 return root_window->GetProperty(aura::client::kRootWindowInputMethodKey); | 3241 return root_window->GetProperty(aura::client::kRootWindowInputMethodKey); |
3241 } | 3242 } |
3242 | 3243 |
3243 bool RenderWidgetHostViewAura::NeedsInputGrab() { | 3244 bool RenderWidgetHostViewAura::NeedsInputGrab() { |
3244 return popup_type_ == WebKit::WebPopupTypeSelect; | 3245 return popup_type_ == WebKit::WebPopupTypeSelect; |
3245 } | 3246 } |
3246 | 3247 |
3247 void RenderWidgetHostViewAura::FinishImeCompositionSession() { | 3248 void RenderWidgetHostViewAura::FinishImeCompositionSession() { |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3336 DCHECK(compositor); | 3337 DCHECK(compositor); |
3337 | 3338 |
3338 if (!compositor->HasObserver(this)) | 3339 if (!compositor->HasObserver(this)) |
3339 compositor->AddObserver(this); | 3340 compositor->AddObserver(this); |
3340 | 3341 |
3341 can_lock_compositor_ = NO_PENDING_COMMIT; | 3342 can_lock_compositor_ = NO_PENDING_COMMIT; |
3342 on_compositing_did_commit_callbacks_.push_back(callback); | 3343 on_compositing_did_commit_callbacks_.push_back(callback); |
3343 } | 3344 } |
3344 | 3345 |
3345 void RenderWidgetHostViewAura::AddedToRootWindow() { | 3346 void RenderWidgetHostViewAura::AddedToRootWindow() { |
3346 window_->GetRootWindow()->AddRootWindowObserver(this); | 3347 window_->GetDispatcher()->AddRootWindowObserver(this); |
3347 host_->ParentChanged(GetNativeViewId()); | 3348 host_->ParentChanged(GetNativeViewId()); |
3348 UpdateScreenInfo(window_); | 3349 UpdateScreenInfo(window_); |
3349 if (popup_type_ != WebKit::WebPopupTypeNone) | 3350 if (popup_type_ != WebKit::WebPopupTypeNone) |
3350 event_filter_for_popup_exit_.reset(new EventFilterForPopupExit(this)); | 3351 event_filter_for_popup_exit_.reset(new EventFilterForPopupExit(this)); |
3351 | 3352 |
3352 aura::client::CursorClient* cursor_client = | 3353 aura::client::CursorClient* cursor_client = |
3353 aura::client::GetCursorClient(window_->GetRootWindow()); | 3354 aura::client::GetCursorClient(window_->GetRootWindow()); |
3354 if (cursor_client) { | 3355 if (cursor_client) { |
3355 cursor_client->AddObserver(this); | 3356 cursor_client->AddObserver(this); |
3356 NotifyRendererOfCursorVisibilityState(cursor_client->IsCursorVisible()); | 3357 NotifyRendererOfCursorVisibilityState(cursor_client->IsCursorVisible()); |
3357 } | 3358 } |
3358 if (current_surface_.get()) | 3359 if (current_surface_.get()) |
3359 UpdateExternalTexture(); | 3360 UpdateExternalTexture(); |
3360 } | 3361 } |
3361 | 3362 |
3362 void RenderWidgetHostViewAura::RemovingFromRootWindow() { | 3363 void RenderWidgetHostViewAura::RemovingFromRootWindow() { |
3363 aura::client::CursorClient* cursor_client = | 3364 aura::client::CursorClient* cursor_client = |
3364 aura::client::GetCursorClient(window_->GetRootWindow()); | 3365 aura::client::GetCursorClient(window_->GetRootWindow()); |
3365 if (cursor_client) | 3366 if (cursor_client) |
3366 cursor_client->RemoveObserver(this); | 3367 cursor_client->RemoveObserver(this); |
3367 | 3368 |
3368 event_filter_for_popup_exit_.reset(); | 3369 event_filter_for_popup_exit_.reset(); |
3369 window_->GetRootWindow()->RemoveRootWindowObserver(this); | 3370 window_->GetDispatcher()->RemoveRootWindowObserver(this); |
3370 host_->ParentChanged(0); | 3371 host_->ParentChanged(0); |
3371 ui::Compositor* compositor = GetCompositor(); | 3372 ui::Compositor* compositor = GetCompositor(); |
3372 if (current_surface_.get()) { | 3373 if (current_surface_.get()) { |
3373 // We can't get notification for commits after this point, which would | 3374 // We can't get notification for commits after this point, which would |
3374 // guarantee that the compositor isn't using an old texture any more, so | 3375 // guarantee that the compositor isn't using an old texture any more, so |
3375 // instead we force the layer to stop using any external resources which | 3376 // instead we force the layer to stop using any external resources which |
3376 // synchronizes with the compositor thread, and makes it safe to run the | 3377 // synchronizes with the compositor thread, and makes it safe to run the |
3377 // callback. | 3378 // callback. |
3378 window_->layer()->SetShowPaintedContent(); | 3379 window_->layer()->SetShowPaintedContent(); |
3379 } | 3380 } |
3380 RunOnCommitCallbacks(); | 3381 RunOnCommitCallbacks(); |
3381 resize_lock_.reset(); | 3382 resize_lock_.reset(); |
3382 host_->WasResized(); | 3383 host_->WasResized(); |
3383 if (compositor && compositor->HasObserver(this)) | 3384 if (compositor && compositor->HasObserver(this)) |
3384 compositor->RemoveObserver(this); | 3385 compositor->RemoveObserver(this); |
3385 } | 3386 } |
3386 | 3387 |
3387 ui::Compositor* RenderWidgetHostViewAura::GetCompositor() const { | 3388 ui::Compositor* RenderWidgetHostViewAura::GetCompositor() const { |
3388 aura::RootWindow* root_window = window_->GetRootWindow(); | 3389 aura::WindowEventDispatcher* dispatcher = window_->GetDispatcher(); |
3389 return root_window ? root_window->compositor() : NULL; | 3390 return dispatcher ? dispatcher->compositor() : NULL; |
3390 } | 3391 } |
3391 | 3392 |
3392 void RenderWidgetHostViewAura::DetachFromInputMethod() { | 3393 void RenderWidgetHostViewAura::DetachFromInputMethod() { |
3393 ui::InputMethod* input_method = GetInputMethod(); | 3394 ui::InputMethod* input_method = GetInputMethod(); |
3394 if (input_method && input_method->GetTextInputClient() == this) | 3395 if (input_method && input_method->GetTextInputClient() == this) |
3395 input_method->SetFocusedTextInputClient(NULL); | 3396 input_method->SetFocusedTextInputClient(NULL); |
3396 } | 3397 } |
3397 | 3398 |
3398 //////////////////////////////////////////////////////////////////////////////// | 3399 //////////////////////////////////////////////////////////////////////////////// |
3399 // RenderWidgetHostView, public: | 3400 // RenderWidgetHostView, public: |
3400 | 3401 |
3401 // static | 3402 // static |
3402 RenderWidgetHostView* RenderWidgetHostView::CreateViewForWidget( | 3403 RenderWidgetHostView* RenderWidgetHostView::CreateViewForWidget( |
3403 RenderWidgetHost* widget) { | 3404 RenderWidgetHost* widget) { |
3404 return new RenderWidgetHostViewAura(widget); | 3405 return new RenderWidgetHostViewAura(widget); |
3405 } | 3406 } |
3406 | 3407 |
3407 // static | 3408 // static |
3408 void RenderWidgetHostViewPort::GetDefaultScreenInfo(WebScreenInfo* results) { | 3409 void RenderWidgetHostViewPort::GetDefaultScreenInfo(WebScreenInfo* results) { |
3409 GetScreenInfoForWindow(results, NULL); | 3410 GetScreenInfoForWindow(results, NULL); |
3410 } | 3411 } |
3411 | 3412 |
3412 } // namespace content | 3413 } // namespace content |
OLD | NEW |