diff options
author | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-12 21:07:24 +0000 |
---|---|---|
committer | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-12 21:07:24 +0000 |
commit | f7c05b242215b26ff09102fdf0bf9a911cec9329 (patch) | |
tree | 9c77f68f230c22e29a15f5b78713c7ba335a8c01 | |
parent | 49939c1ac5bda33a232917ac126b5d233920aa2f (diff) | |
download | chromium_src-f7c05b242215b26ff09102fdf0bf9a911cec9329.zip chromium_src-f7c05b242215b26ff09102fdf0bf9a911cec9329.tar.gz chromium_src-f7c05b242215b26ff09102fdf0bf9a911cec9329.tar.bz2 |
Make RootWindow not subclass Window.
Removes the #include of window.h from root_window.h too, which makes this CL a little longer bandaiding all those places.
The interesting parts of this change are in root_window.* and window.*
R=sky@chromium.org
http://crbug.com/308843
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=234428
Review URL: https://codereview.chromium.org/68313003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@234634 0039d316-1c4b-4281-b951-d872f2087c98
44 files changed, 159 insertions, 126 deletions
diff --git a/ash/display/display_controller.cc b/ash/display/display_controller.cc index 73c1aa0..579975a 100644 --- a/ash/display/display_controller.cc +++ b/ash/display/display_controller.cc @@ -768,8 +768,8 @@ aura::RootWindow* DisplayController::AddRootWindowForDisplay( display.id(); root_window->Init(); - root_windows_[display.id()] = root_window; - SetDisplayPropertiesOnHostWindow(root_window->GetDispatcher(), display); + root_windows_[display.id()] = root_window->window(); + SetDisplayPropertiesOnHostWindow(root_window, display); #if defined(OS_CHROMEOS) static bool force_constrain_pointer_to_root = diff --git a/ash/root_window_controller.cc b/ash/root_window_controller.cc index 3cfb6d2..c068809 100644 --- a/ash/root_window_controller.cc +++ b/ash/root_window_controller.cc @@ -583,7 +583,7 @@ void RootWindowController::Init(RootWindowType root_window_type, Shell::GetInstance()->InitRootWindow(root_window()); root_window_->SetCursor(ui::kCursorPointer); - CreateContainersInRootWindow(root_window_.get()); + CreateContainersInRootWindow(root_window_->window()); if (root_window_type == VIRTUAL_KEYBOARD) return; @@ -607,7 +607,8 @@ void RootWindowController::Init(RootWindowType root_window_type, } else { root_window_layout()->OnWindowResized(); shell->desktop_background_controller()->OnRootWindowAdded(root_window()); - shell->high_contrast_controller()->OnRootWindowAdded(root_window_.get()); + shell->high_contrast_controller()->OnRootWindowAdded( + root_window_->window()); root_window_->ShowRootWindow(); // Create a launcher if a user is already logged. diff --git a/ash/root_window_controller.h b/ash/root_window_controller.h index 980bf1e..0ccc1d3 100644 --- a/ash/root_window_controller.h +++ b/ash/root_window_controller.h @@ -14,6 +14,7 @@ #include "base/basictypes.h" #include "base/memory/scoped_ptr.h" #include "ui/aura/root_window.h" +#include "ui/aura/window.h" #include "ui/base/ui_base_types.h" class SkBitmap; diff --git a/ash/wm/boot_splash_screen_chromeos.cc b/ash/wm/boot_splash_screen_chromeos.cc index 0074340..ad93865 100644 --- a/ash/wm/boot_splash_screen_chromeos.cc +++ b/ash/wm/boot_splash_screen_chromeos.cc @@ -6,6 +6,7 @@ #include "third_party/skia/include/core/SkBitmap.h" #include "ui/aura/root_window.h" +#include "ui/aura/window.h" #include "ui/base/x/x11_util.h" #include "ui/compositor/layer.h" #include "ui/compositor/layer_type.h" @@ -56,7 +57,7 @@ BootSplashScreen::BootSplashScreen(aura::RootWindow* root_window) layer_(new ui::Layer(ui::LAYER_TEXTURED)) { layer_->set_delegate(layer_delegate_.get()); - ui::Layer* root_layer = root_window->layer(); + ui::Layer* root_layer = root_window->window()->layer(); layer_->SetBounds(gfx::Rect(root_layer->bounds().size())); root_layer->Add(layer_.get()); root_layer->StackAtTop(layer_.get()); diff --git a/ash/wm/sticky_keys.cc b/ash/wm/sticky_keys.cc index 99a0eac..dfd18c6 100644 --- a/ash/wm/sticky_keys.cc +++ b/ash/wm/sticky_keys.cc @@ -12,6 +12,7 @@ #include "base/basictypes.h" #include "base/debug/stack_trace.h" #include "ui/aura/root_window.h" +#include "ui/aura/window.h" #include "ui/events/event.h" #include "ui/events/keycodes/keyboard_code_conversion.h" diff --git a/ash/wm/window_manager_unittest.cc b/ash/wm/window_manager_unittest.cc index 9f6b2ba..4ec141a 100644 --- a/ash/wm/window_manager_unittest.cc +++ b/ash/wm/window_manager_unittest.cc @@ -592,7 +592,7 @@ TEST_F(WindowManagerTest, MAYBE_TransformActivate) { gfx::Transform transform; transform.Translate(size.width(), 0); transform.Rotate(90.0f); - root_window->SetTransform(transform); + root_window->GetDispatcher()->SetTransform(transform); test::TestActivationDelegate d1; aura::test::TestWindowDelegate wd; diff --git a/chrome/browser/renderer_host/pepper/pepper_flash_drm_host.cc b/chrome/browser/renderer_host/pepper/pepper_flash_drm_host.cc index c7f47e5..5bb5d79 100644 --- a/chrome/browser/renderer_host/pepper/pepper_flash_drm_host.cc +++ b/chrome/browser/renderer_host/pepper/pepper_flash_drm_host.cc @@ -26,6 +26,7 @@ #if defined(USE_AURA) #include "ui/aura/root_window.h" +#include "ui/aura/window.h" #endif using content::BrowserPpapiHost; diff --git a/chrome/browser/ui/app_modal_dialogs/javascript_app_modal_dialog.cc b/chrome/browser/ui/app_modal_dialogs/javascript_app_modal_dialog.cc index 651f007..cc82b5a 100644 --- a/chrome/browser/ui/app_modal_dialogs/javascript_app_modal_dialog.cc +++ b/chrome/browser/ui/app_modal_dialogs/javascript_app_modal_dialog.cc @@ -14,6 +14,7 @@ #if defined(USE_AURA) #include "ui/aura/root_window.h" +#include "ui/aura/window.h" #endif using content::JavaScriptDialogManager; diff --git a/chrome/browser/ui/find_bar/find_bar_host_browsertest.cc b/chrome/browser/ui/find_bar/find_bar_host_browsertest.cc index dcc7dae..97e2105 100644 --- a/chrome/browser/ui/find_bar/find_bar_host_browsertest.cc +++ b/chrome/browser/ui/find_bar/find_bar_host_browsertest.cc @@ -45,6 +45,7 @@ #if defined(OS_WIN) && defined(USE_AURA) #include "content/public/browser/web_contents_view.h" #include "ui/aura/root_window.h" +#include "ui/aura/window.h" #endif using content::NavigationController; diff --git a/chrome/browser/ui/views/external_tab_container_win.cc b/chrome/browser/ui/views/external_tab_container_win.cc index 9fa14db..16a1387 100644 --- a/chrome/browser/ui/views/external_tab_container_win.cc +++ b/chrome/browser/ui/views/external_tab_container_win.cc @@ -77,6 +77,7 @@ #if defined(USE_AURA) #include "ui/aura/root_window.h" +#include "ui/aura/window.h" #include "ui/views/widget/desktop_aura/desktop_native_widget_aura.h" #include "ui/views/widget/desktop_aura/desktop_root_window_host_win.h" #endif diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller.cc b/chrome/browser/ui/views/tabs/tab_drag_controller.cc index d4d2bc1..d6fe9a4 100644 --- a/chrome/browser/ui/views/tabs/tab_drag_controller.cc +++ b/chrome/browser/ui/views/tabs/tab_drag_controller.cc @@ -55,6 +55,7 @@ #include "ash/wm/window_state.h" #include "ui/aura/env.h" #include "ui/aura/root_window.h" +#include "ui/aura/window.h" #include "ui/events/gestures/gesture_recognizer.h" #endif diff --git a/chrome/browser/ui/webui/print_preview/print_preview_ui_browsertest.cc b/chrome/browser/ui/webui/print_preview/print_preview_ui_browsertest.cc index 59c37a7..dd3700d 100644 --- a/chrome/browser/ui/webui/print_preview/print_preview_ui_browsertest.cc +++ b/chrome/browser/ui/webui/print_preview/print_preview_ui_browsertest.cc @@ -25,6 +25,7 @@ #if defined(OS_WIN) && defined(USE_AURA) #include "content/public/browser/web_contents_view.h" #include "ui/aura/root_window.h" +#include "ui/aura/window.h" #endif namespace { diff --git a/content/browser/renderer_host/input/synthetic_gesture_target_aura.cc b/content/browser/renderer_host/input/synthetic_gesture_target_aura.cc index 4db289a..a81c0b1 100644 --- a/content/browser/renderer_host/input/synthetic_gesture_target_aura.cc +++ b/content/browser/renderer_host/input/synthetic_gesture_target_aura.cc @@ -26,8 +26,7 @@ void SyntheticGestureTargetAura::QueueWebTouchEventToPlatform( const WebTouchEvent& web_touch, const ui::LatencyInfo& latency_info) { aura::Window* window = render_widget_host()->GetView()->GetNativeView(); - aura::RootWindow* root_window = - static_cast<aura::RootWindow*>(window->GetRootWindow()); + aura::Window* root_window = window->GetRootWindow(); aura::client::ScreenPositionClient* position_client = aura::client::GetScreenPositionClient(root_window); DCHECK(position_client); @@ -51,7 +50,7 @@ void SyntheticGestureTargetAura::QueueWebTouchEventToPlatform( DCHECK(conversion_success); aura::RootWindowHostDelegate* root_window_host_delegate = - root_window->AsRootWindowHostDelegate(); + root_window->GetDispatcher()->AsRootWindowHostDelegate(); for (ScopedVector<ui::TouchEvent>::iterator iter = events.begin(), end = events.end(); iter != end; ++iter) { root_window_host_delegate->OnHostTouchEvent(*iter); diff --git a/content/browser/renderer_host/touch_smooth_scroll_gesture_aura.cc b/content/browser/renderer_host/touch_smooth_scroll_gesture_aura.cc index 659cd99..45f0d74 100644 --- a/content/browser/renderer_host/touch_smooth_scroll_gesture_aura.cc +++ b/content/browser/renderer_host/touch_smooth_scroll_gesture_aura.cc @@ -6,6 +6,7 @@ #include "content/browser/renderer_host/render_widget_host_impl.h" #include "ui/aura/root_window.h" +#include "ui/aura/window.h" #include "ui/events/event.h" #include "ui/events/event_utils.h" #include "ui/gfx/transform.h" diff --git a/ui/app_list/views/apps_grid_view.cc b/ui/app_list/views/apps_grid_view.cc index 482a7ce..fb8d6da2 100644 --- a/ui/app_list/views/apps_grid_view.cc +++ b/ui/app_list/views/apps_grid_view.cc @@ -28,6 +28,7 @@ #if defined(USE_AURA) #include "ui/aura/root_window.h" +#include "ui/aura/window.h" #endif #if defined(OS_WIN) && !defined(USE_AURA) diff --git a/ui/aura/client/default_capture_client.cc b/ui/aura/client/default_capture_client.cc index 6008a89..debd86e 100644 --- a/ui/aura/client/default_capture_client.cc +++ b/ui/aura/client/default_capture_client.cc @@ -5,6 +5,7 @@ #include "ui/aura/client/default_capture_client.h" #include "ui/aura/root_window.h" +#include "ui/aura/window.h" namespace aura { namespace client { @@ -12,11 +13,11 @@ namespace client { DefaultCaptureClient::DefaultCaptureClient(Window* root_window) : root_window_(root_window), capture_window_(NULL) { - client::SetCaptureClient(root_window_, this); + SetCaptureClient(root_window_, this); } DefaultCaptureClient::~DefaultCaptureClient() { - client::SetCaptureClient(root_window_, NULL); + SetCaptureClient(root_window_, NULL); } void DefaultCaptureClient::SetCapture(Window* window) { diff --git a/ui/aura/gestures/gesture_recognizer_unittest.cc b/ui/aura/gestures/gesture_recognizer_unittest.cc index 2d0a09c..096505b 100644 --- a/ui/aura/gestures/gesture_recognizer_unittest.cc +++ b/ui/aura/gestures/gesture_recognizer_unittest.cc @@ -14,6 +14,7 @@ #include "ui/aura/test/event_generator.h" #include "ui/aura/test/test_window_delegate.h" #include "ui/aura/test/test_windows.h" +#include "ui/aura/window.h" #include "ui/base/hit_test.h" #include "ui/base/ui_base_switches.h" #include "ui/events/event.h" diff --git a/ui/aura/root_window.cc b/ui/aura/root_window.cc index daa9a92..507f3c4 100644 --- a/ui/aura/root_window.cc +++ b/ui/aura/root_window.cc @@ -141,7 +141,7 @@ RootWindow::CreateParams::CreateParams(const gfx::Rect& a_initial_bounds) // RootWindow, public: RootWindow::RootWindow(const CreateParams& params) - : Window(NULL), + : window_(new Window(NULL)), host_(CreateHost(this, params)), touch_ids_down_(0), last_cursor_(ui::kCursorNull), @@ -180,7 +180,7 @@ RootWindow::~RootWindow() { // ~Window, but by that time any calls to virtual methods overriden here (such // as GetRootWindow()) result in Window's implementation. By destroying here // we ensure GetRootWindow() still returns this. - RemoveOrDestroyChildren(); + window()->RemoveOrDestroyChildren(); // Destroying/removing child windows may try to access |host_| (eg. // GetAcceleratedWidget()) @@ -199,7 +199,7 @@ RootWindow* RootWindow::GetForAcceleratedWidget( void RootWindow::Init() { compositor()->SetScaleAndSize(GetDeviceScaleFactorFromDisplay(window()), host_->GetBounds().size()); - Window::Init(ui::LAYER_NOT_DRAWN); + window()->Init(ui::LAYER_NOT_DRAWN); compositor()->SetRootLayer(window()->layer()); transformer_.reset( new SimpleRootWindowTransformer(window(), gfx::Transform())); @@ -525,7 +525,7 @@ void RootWindow::SetRootWindowTransformer( scoped_ptr<RootWindowTransformer> transformer) { transformer_ = transformer.Pass(); host_->SetInsets(transformer_->GetHostInsets()); - Window::SetTransform(transformer_->GetTransform()); + window()->SetTransform(transformer_->GetTransform()); // If the layer is not animating, then we need to update the root window // size immediately. if (!window()->layer()->GetAnimator()->is_animating()) @@ -540,29 +540,14 @@ gfx::Transform RootWindow::GetRootTransform() const { return transform; } -//////////////////////////////////////////////////////////////////////////////// -// RootWindow, Window overrides: - -Window* RootWindow::GetRootWindow() { - return this; -} - -const Window* RootWindow::GetRootWindow() const { - return this; -} - void RootWindow::SetTransform(const gfx::Transform& transform) { scoped_ptr<RootWindowTransformer> transformer( new SimpleRootWindowTransformer(window(), transform)); SetRootWindowTransformer(transformer.Pass()); } -bool RootWindow::CanFocus() const { - return IsVisible(); -} - -bool RootWindow::CanReceiveEvents() const { - return IsVisible(); +void RootWindow::DeviceScaleFactorChanged(float device_scale_factor) { + host_->OnDeviceScaleFactorChanged(device_scale_factor); } //////////////////////////////////////////////////////////////////////////////// @@ -579,7 +564,7 @@ void RootWindow::MoveCursorToInternal(const gfx::Point& root_location, client::CursorClient* cursor_client = client::GetCursorClient(window()); if (cursor_client) { const gfx::Display& display = - gfx::Screen::GetScreenFor(this)->GetDisplayNearestWindow(window()); + gfx::Screen::GetScreenFor(window())->GetDisplayNearestWindow(window()); cursor_client->SetDisplay(display); } synthesize_mouse_move_ = false; @@ -691,44 +676,6 @@ void RootWindow::UpdateRootWindowSize(const gfx::Size& host_size) { } //////////////////////////////////////////////////////////////////////////////// -// RootWindow, ui::EventTarget implementation: - -ui::EventTarget* RootWindow::GetParentTarget() { - return client::GetEventClient(this) ? - client::GetEventClient(this)->GetToplevelEventTarget() : - Env::GetInstance(); -} - -//////////////////////////////////////////////////////////////////////////////// -// RootWindow, ui::LayerDelegate implementation: - -void RootWindow::OnDeviceScaleFactorChanged( - float device_scale_factor) { - const bool cursor_is_in_bounds = - GetBoundsInScreen().Contains(Env::GetInstance()->last_mouse_location()); - bool cursor_visible = false; - client::CursorClient* cursor_client = client::GetCursorClient(this); - if (cursor_is_in_bounds && cursor_client) { - cursor_visible = cursor_client->IsCursorVisible(); - if (cursor_visible) - cursor_client->HideCursor(); - } - host_->OnDeviceScaleFactorChanged(device_scale_factor); - Window::OnDeviceScaleFactorChanged(device_scale_factor); - // Update the device scale factor of the cursor client only when the last - // mouse location is on this root window. - if (cursor_is_in_bounds) { - if (cursor_client) { - const gfx::Display& display = - gfx::Screen::GetScreenFor(this)->GetDisplayNearestWindow(this); - cursor_client->SetDisplay(display); - } - } - if (cursor_is_in_bounds && cursor_client && cursor_visible) - cursor_client->ShowCursor(); -} - -//////////////////////////////////////////////////////////////////////////////// // RootWindow, aura::client::CaptureDelegate implementation: void RootWindow::UpdateCapture(Window* old_capture, diff --git a/ui/aura/root_window.h b/ui/aura/root_window.h index 1b81d58..f6a966b 100644 --- a/ui/aura/root_window.h +++ b/ui/aura/root_window.h @@ -16,7 +16,6 @@ #include "ui/aura/aura_export.h" #include "ui/aura/client/capture_delegate.h" #include "ui/aura/root_window_host_delegate.h" -#include "ui/aura/window.h" #include "ui/base/cursor/cursor.h" #include "ui/compositor/compositor.h" #include "ui/compositor/layer_animation_observer.h" @@ -52,8 +51,7 @@ class RootWindowTransformer; class TestScreen; // RootWindow is responsible for hosting a set of windows. -class AURA_EXPORT RootWindow : public Window, - public ui::EventDispatcherDelegate, +class AURA_EXPORT RootWindow : public ui::EventDispatcherDelegate, public ui::GestureEventHelper, public ui::LayerAnimationObserver, public aura::client::CaptureDelegate, @@ -81,7 +79,7 @@ class AURA_EXPORT RootWindow : public Window, Window* window() { return const_cast<Window*>(const_cast<const RootWindow*>(this)->window()); } - const Window* window() const { return this; } + const Window* window() const { return window_.get(); } ui::Compositor* compositor() { return compositor_.get(); } gfx::NativeCursor last_cursor() const { return last_cursor_; } Window* mouse_pressed_handler() { return mouse_pressed_handler_; } @@ -129,7 +127,7 @@ class AURA_EXPORT RootWindow : public Window, void OnMouseEventsEnableStateChanged(bool enabled); // Moves the cursor to the specified location relative to the root window. - virtual void MoveCursorTo(const gfx::Point& location) OVERRIDE; + void MoveCursorTo(const gfx::Point& location); // Moves the cursor to the |host_location| given in host coordinates. void MoveCursorToHostLocation(const gfx::Point& host_location); @@ -244,12 +242,9 @@ class AURA_EXPORT RootWindow : public Window, void SetRootWindowTransformer(scoped_ptr<RootWindowTransformer> transformer); gfx::Transform GetRootTransform() const; - // Overridden from Window: - virtual Window* GetRootWindow() OVERRIDE; - virtual const Window* GetRootWindow() const OVERRIDE; - virtual void SetTransform(const gfx::Transform& transform) OVERRIDE; - virtual bool CanFocus() const OVERRIDE; - virtual bool CanReceiveEvents() const OVERRIDE; + void SetTransform(const gfx::Transform& transform); + + void DeviceScaleFactorChanged(float device_scale_factor); private: FRIEND_TEST_ALL_PREFIXES(RootWindowTest, KeepTranslatedEventInRoot); @@ -304,12 +299,6 @@ class AURA_EXPORT RootWindow : public Window, // transform and insets. void UpdateRootWindowSize(const gfx::Size& host_size); - // Overridden from ui::EventTarget: - virtual ui::EventTarget* GetParentTarget() OVERRIDE; - - // Overridden from ui::LayerDelegate: - virtual void OnDeviceScaleFactorChanged(float device_scale_factor) OVERRIDE; - // Overridden from aura::client::CaptureDelegate: virtual void UpdateCapture(Window* old_capture, Window* new_capture) OVERRIDE; virtual void OnOtherRootGotCapture() OVERRIDE; @@ -317,7 +306,7 @@ class AURA_EXPORT RootWindow : public Window, virtual void ReleaseNativeCapture() OVERRIDE; // Overridden from ui::EventDispatcherDelegate. - virtual bool CanDispatchToTarget(EventTarget* target) OVERRIDE; + virtual bool CanDispatchToTarget(ui::EventTarget* target) OVERRIDE; // Overridden from ui::GestureEventHelper. virtual bool CanDispatchToConsumer(ui::GestureConsumer* consumer) OVERRIDE; @@ -380,6 +369,9 @@ class AURA_EXPORT RootWindow : public Window, gfx::Transform GetInverseRootTransform() const; + // TODO(beng): evaluate the ideal ownership model. + scoped_ptr<Window> window_; + scoped_ptr<ui::Compositor> compositor_; scoped_ptr<RootWindowHost> host_; diff --git a/ui/aura/root_window_host_x11.cc b/ui/aura/root_window_host_x11.cc index a908d0c..dc410f1 100644 --- a/ui/aura/root_window_host_x11.cc +++ b/ui/aura/root_window_host_x11.cc @@ -456,7 +456,7 @@ bool RootWindowHostX11::Dispatch(const base::NativeEvent& event) { if (static_cast<int>(xev->xbutton.button) == kBackMouseButton || static_cast<int>(xev->xbutton.button) == kForwardMouseButton) { client::UserActionClient* gesture_client = - client::GetUserActionClient(delegate_->AsRootWindow()); + client::GetUserActionClient(delegate_->AsRootWindow()->window()); if (gesture_client) { gesture_client->OnUserAction( static_cast<int>(xev->xbutton.button) == kBackMouseButton ? @@ -638,8 +638,9 @@ void RootWindowHostX11::SetBounds(const gfx::Rect& bounds) { // Even if the host window's size doesn't change, aura's root window // size, which is in DIP, changes when the scale changes. float current_scale = delegate_->GetDeviceScaleFactor(); - float new_scale = gfx::Screen::GetScreenFor(delegate_->AsRootWindow())-> - GetDisplayNearestWindow(delegate_->AsRootWindow()).device_scale_factor(); + float new_scale = gfx::Screen::GetScreenFor( + delegate_->AsRootWindow()->window())->GetDisplayNearestWindow( + delegate_->AsRootWindow()->window()).device_scale_factor(); bool origin_changed = bounds_.origin() != bounds.origin(); bool size_changed = bounds_.size() != bounds.size(); XWindowChanges changes = {0}; @@ -671,8 +672,8 @@ void RootWindowHostX11::SetBounds(const gfx::Rect& bounds) { if (size_changed || current_scale != new_scale) { delegate_->OnHostResized(bounds.size()); } else { - delegate_->AsRootWindow()->SchedulePaintInRect( - delegate_->AsRootWindow()->bounds()); + delegate_->AsRootWindow()->window()->SchedulePaintInRect( + delegate_->AsRootWindow()->window()->bounds()); } } @@ -851,7 +852,7 @@ void RootWindowHostX11::OnRootWindowInitialized(RootWindow* root_window) { // RootWindow::Init is called. // (set in DisplayManager::CreateRootWindowForDisplay) // Ready when NotifyRootWindowInitialized is called from RootWindow::Init. - if (!delegate_ || root_window != GetRootWindow()->window()) + if (!delegate_ || root_window != GetRootWindow()) return; UpdateIsInternalDisplay(); @@ -967,7 +968,7 @@ void RootWindowHostX11::DispatchXI2Event(const base::NativeEvent& event) { if (type == ui::ET_MOUSE_RELEASED) break; client::UserActionClient* gesture_client = - client::GetUserActionClient(delegate_->AsRootWindow()); + client::GetUserActionClient(delegate_->AsRootWindow()->window()); if (gesture_client) { bool reverse_direction = ui::IsTouchpadEvent(xev) && ui::IsNaturalScrollEnabled(); diff --git a/ui/aura/root_window_unittest.cc b/ui/aura/root_window_unittest.cc index 2ef4430..3fca471 100644 --- a/ui/aura/root_window_unittest.cc +++ b/ui/aura/root_window_unittest.cc @@ -16,6 +16,7 @@ #include "ui/aura/test/test_event_handler.h" #include "ui/aura/test/test_window_delegate.h" #include "ui/aura/test/test_windows.h" +#include "ui/aura/window.h" #include "ui/aura/window_tracker.h" #include "ui/base/hit_test.h" #include "ui/events/event.h" @@ -1247,7 +1248,7 @@ namespace { // See description above DeleteRootFromHeldMouseEvent for details. class DeleteRootFromHeldMouseEventDelegate : public test::TestWindowDelegate { public: - explicit DeleteRootFromHeldMouseEventDelegate(aura::Window* root) + explicit DeleteRootFromHeldMouseEventDelegate(aura::RootWindow* root) : root_(root), got_mouse_event_(false), got_destroy_(false) { @@ -1269,7 +1270,7 @@ class DeleteRootFromHeldMouseEventDelegate : public test::TestWindowDelegate { } private: - Window* root_; + RootWindow* root_; bool got_mouse_event_; bool got_destroy_; diff --git a/ui/aura/test/aura_test_base.cc b/ui/aura/test/aura_test_base.cc index d5263e4..8393766 100644 --- a/ui/aura/test/aura_test_base.cc +++ b/ui/aura/test/aura_test_base.cc @@ -8,6 +8,7 @@ #include "ui/aura/root_window.h" #include "ui/aura/test/aura_test_helper.h" #include "ui/aura/test/test_window_delegate.h" +#include "ui/aura/window.h" #include "ui/base/ime/input_method_initializer.h" #include "ui/events/gestures/gesture_configuration.h" diff --git a/ui/aura/test/ui_controls_factory_aurawin.cc b/ui/aura/test/ui_controls_factory_aurawin.cc index 60a15c9..86f2d10 100644 --- a/ui/aura/test/ui_controls_factory_aurawin.cc +++ b/ui/aura/test/ui_controls_factory_aurawin.cc @@ -7,6 +7,7 @@ #include "base/message_loop/message_loop.h" #include "ui/aura/root_window.h" #include "ui/aura/test/ui_controls_factory_aura.h" +#include "ui/aura/window.h" #include "ui/base/test/ui_controls_aura.h" #include "ui/base/test/ui_controls_internal_win.h" diff --git a/ui/aura/test/ui_controls_factory_aurax11.cc b/ui/aura/test/ui_controls_factory_aurax11.cc index b672181..7926143 100644 --- a/ui/aura/test/ui_controls_factory_aurax11.cc +++ b/ui/aura/test/ui_controls_factory_aurax11.cc @@ -15,6 +15,7 @@ #include "ui/aura/env.h" #include "ui/aura/root_window.h" #include "ui/aura/test/ui_controls_factory_aura.h" +#include "ui/aura/window.h" #include "ui/base/test/ui_controls_aura.h" #include "ui/base/x/x11_util.h" #include "ui/compositor/dip_util.h" @@ -145,7 +146,7 @@ class UIControlsX11 : public UIControlsAura { XMotionEvent* xmotion = &xevent.xmotion; xmotion->type = MotionNotify; gfx::Point point = ui::ConvertPointToPixel( - root_window_->layer(), + root_window_->window()->layer(), gfx::Point(static_cast<int>(x), static_cast<int>(y))); xmotion->x = point.x(); xmotion->y = point.y(); @@ -167,9 +168,11 @@ class UIControlsX11 : public UIControlsAura { XButtonEvent* xbutton = &xevent.xbutton; gfx::Point mouse_loc = aura::Env::GetInstance()->last_mouse_location(); aura::client::ScreenPositionClient* screen_position_client = - aura::client::GetScreenPositionClient(root_window_); - if (screen_position_client) - screen_position_client->ConvertPointFromScreen(root_window_, &mouse_loc); + aura::client::GetScreenPositionClient(root_window_->window()); + if (screen_position_client) { + screen_position_client->ConvertPointFromScreen(root_window_->window(), + &mouse_loc); + } xbutton->x = mouse_loc.x(); xbutton->y = mouse_loc.y(); xbutton->same_screen = True; diff --git a/ui/aura/window.cc b/ui/aura/window.cc index 0fe9a6d..3154d68 100644 --- a/ui/aura/window.cc +++ b/ui/aura/window.cc @@ -14,6 +14,7 @@ #include "base/strings/string_util.h" #include "base/strings/stringprintf.h" #include "ui/aura/client/capture_client.h" +#include "ui/aura/client/cursor_client.h" #include "ui/aura/client/event_client.h" #include "ui/aura/client/focus_client.h" #include "ui/aura/client/screen_position_client.h" @@ -33,6 +34,47 @@ namespace aura { +class ScopedCursorHider { + public: + explicit ScopedCursorHider(Window* window) + : window_(window), + hid_cursor_(false) { + if (!window_->HasDispatcher()) + return; + const bool cursor_is_in_bounds = window_->GetBoundsInScreen().Contains( + Env::GetInstance()->last_mouse_location()); + client::CursorClient* cursor_client = client::GetCursorClient(window_); + if (cursor_is_in_bounds && cursor_client && + cursor_client->IsCursorVisible()) { + cursor_client->HideCursor(); + hid_cursor_ = true; + } + } + ~ScopedCursorHider() { + if (!window_->HasDispatcher()) + return; + + // Update the device scale factor of the cursor client only when the last + // mouse location is on this root window. + if (hid_cursor_) { + client::CursorClient* cursor_client = client::GetCursorClient(window_); + if (cursor_client) { + const gfx::Display& display = + gfx::Screen::GetScreenFor(window_)->GetDisplayNearestWindow( + window_); + cursor_client->SetDisplay(display); + cursor_client->ShowCursor(); + } + } + } + + private: + Window* window_; + bool hid_cursor_; + + DISALLOW_COPY_AND_ASSIGN(ScopedCursorHider); +}; + Window::Window(WindowDelegate* delegate) : dispatcher_(NULL), type_(client::WINDOW_TYPE_UNKNOWN), @@ -183,7 +225,7 @@ Window* Window::GetRootWindow() { } const Window* Window::GetRootWindow() const { - return parent_ ? parent_->GetRootWindow() : NULL; + return dispatcher_ ? this : parent_ ? parent_->GetRootWindow() : NULL; } WindowEventDispatcher* Window::GetDispatcher() { @@ -536,6 +578,9 @@ bool Window::HasFocus() const { } bool Window::CanFocus() const { + if (dispatcher_) + return IsVisible(); + // NOTE: as part of focusing the window the ActivationClient may make the // window visible (by way of making a hidden ancestor visible). For this // reason we can't check visibility here and assume the client is doing it. @@ -552,6 +597,9 @@ bool Window::CanFocus() const { } bool Window::CanReceiveEvents() const { + if (dispatcher_) + return IsVisible(); + // The client may forbid certain windows from receiving events at a given // point in time. client::EventClient* client = client::GetEventClient(GetRootWindow()); @@ -602,6 +650,9 @@ void* Window::GetNativeWindowProperty(const char* key) const { } void Window::OnDeviceScaleFactorChanged(float device_scale_factor) { + ScopedCursorHider hider(this); + if (dispatcher_) + dispatcher_->DeviceScaleFactorChanged(device_scale_factor); if (delegate_) delegate_->OnDeviceScaleFactorChanged(device_scale_factor); } @@ -1122,6 +1173,11 @@ bool Window::CanAcceptEvent(const ui::Event& event) { } ui::EventTarget* Window::GetParentTarget() { + if (dispatcher_) { + return client::GetEventClient(this) ? + client::GetEventClient(this)->GetToplevelEventTarget() : + Env::GetInstance(); + } return parent_; } diff --git a/ui/aura/window.h b/ui/aura/window.h index e11f83a..ea38461 100644 --- a/ui/aura/window.h +++ b/ui/aura/window.h @@ -366,6 +366,7 @@ class AURA_EXPORT Window : public ui::LayerDelegate, private: friend class test::WindowTestApi; friend class LayoutManager; + friend class RootWindow; // Used when stacking windows. enum StackDirection { diff --git a/ui/aura/window_unittest.cc b/ui/aura/window_unittest.cc index be917dd..59747a4 100644 --- a/ui/aura/window_unittest.cc +++ b/ui/aura/window_unittest.cc @@ -365,21 +365,20 @@ TEST_F(WindowTest, DISABLED_MoveCursorToWithTransformRootWindow) { #else TEST_F(WindowTest, MoveCursorToWithTransformRootWindow) { #endif - Window* root = root_window(); gfx::Transform transform; transform.Translate(100.0, 100.0); transform.Rotate(90.0); transform.Scale(2.0, 5.0); - root->SetTransform(transform); - root->MoveCursorTo(gfx::Point(10, 10)); + dispatcher()->SetTransform(transform); + dispatcher()->MoveCursorTo(gfx::Point(10, 10)); #if !defined(OS_WIN) gfx::Point mouse_location; EXPECT_TRUE(dispatcher()->QueryMouseLocationForTest(&mouse_location)); // TODO(yoshiki): fix this to build on Windows. See crbug.com/133413.OD EXPECT_EQ("50,120", mouse_location.ToString()); #endif - EXPECT_EQ("10,10", - gfx::Screen::GetScreenFor(root)->GetCursorScreenPoint().ToString()); + EXPECT_EQ("10,10", gfx::Screen::GetScreenFor( + root_window())->GetCursorScreenPoint().ToString()); } // Tests Window::ConvertPointToWindow() with transform to non-root windows. @@ -451,7 +450,7 @@ TEST_F(WindowTest, MoveCursorToWithComplexTransform) { transform.Translate(10.0, 20.0); transform.Rotate(10.0); transform.Scale(0.3f, 0.5f); - root->SetTransform(root_transform); + dispatcher()->SetTransform(root_transform); w1->SetTransform(transform); w11->SetTransform(transform); w111->SetTransform(transform); @@ -1573,7 +1572,7 @@ TEST_F(WindowTest, TransformGesture) { gfx::Transform transform; transform.Translate(size.height(), 0.0); transform.Rotate(90.0); - root_window()->SetTransform(transform); + dispatcher()->SetTransform(transform); ui::TouchEvent press( ui::ET_TOUCH_PRESSED, gfx::Point(size.height() - 10, 10), 0, getTime()); diff --git a/ui/oak/oak_window.cc b/ui/oak/oak_window.cc index 7d69e22..64c6e42 100644 --- a/ui/oak/oak_window.cc +++ b/ui/oak/oak_window.cc @@ -7,6 +7,7 @@ #include "base/strings/utf_string_conversions.h" #include "grit/ui_resources.h" #include "ui/aura/root_window.h" +#include "ui/aura/window.h" #include "ui/base/resource/resource_bundle.h" #include "ui/gfx/canvas.h" #include "ui/gfx/image/image.h" diff --git a/ui/shell_dialogs/select_file_dialog_win.cc b/ui/shell_dialogs/select_file_dialog_win.cc index 7cec71d..fdf01d7 100644 --- a/ui/shell_dialogs/select_file_dialog_win.cc +++ b/ui/shell_dialogs/select_file_dialog_win.cc @@ -34,6 +34,7 @@ #if defined(USE_AURA) #include "ui/aura/remote_root_window_host_win.h" #include "ui/aura/root_window.h" +#include "ui/aura/window.h" #endif namespace { diff --git a/ui/views/controls/button/custom_button_unittest.cc b/ui/views/controls/button/custom_button_unittest.cc index 88ec051..061bbd6 100644 --- a/ui/views/controls/button/custom_button_unittest.cc +++ b/ui/views/controls/button/custom_button_unittest.cc @@ -12,6 +12,7 @@ #if defined(USE_AURA) #include "ui/aura/root_window.h" #include "ui/aura/test/test_cursor_client.h" +#include "ui/aura/window.h" #endif namespace views { diff --git a/ui/views/corewm/capture_controller_unittest.cc b/ui/views/corewm/capture_controller_unittest.cc index 295ea3d..f6ac7b3 100644 --- a/ui/views/corewm/capture_controller_unittest.cc +++ b/ui/views/corewm/capture_controller_unittest.cc @@ -11,6 +11,7 @@ #include "ui/aura/test/event_generator.h" #include "ui/aura/test/test_screen.h" #include "ui/aura/test/test_window_delegate.h" +#include "ui/aura/window.h" #include "ui/events/event.h" #include "ui/events/event_utils.h" #include "ui/views/test/views_test_base.h" diff --git a/ui/views/corewm/compound_event_filter.cc b/ui/views/corewm/compound_event_filter.cc index b761618..8e42dd8 100644 --- a/ui/views/corewm/compound_event_filter.cc +++ b/ui/views/corewm/compound_event_filter.cc @@ -11,6 +11,7 @@ #include "ui/aura/client/drag_drop_client.h" #include "ui/aura/env.h" #include "ui/aura/root_window.h" +#include "ui/aura/window.h" #include "ui/aura/window_delegate.h" #include "ui/aura/window_tracker.h" #include "ui/base/hit_test.h" diff --git a/ui/views/corewm/compound_event_filter_unittest.cc b/ui/views/corewm/compound_event_filter_unittest.cc index 932ace7..6b852e4 100644 --- a/ui/views/corewm/compound_event_filter_unittest.cc +++ b/ui/views/corewm/compound_event_filter_unittest.cc @@ -12,6 +12,7 @@ #include "ui/aura/test/event_generator.h" #include "ui/aura/test/test_cursor_client.h" #include "ui/aura/test/test_windows.h" +#include "ui/aura/window.h" #include "ui/events/event.h" #include "ui/events/event_utils.h" diff --git a/ui/views/corewm/tooltip_aura.cc b/ui/views/corewm/tooltip_aura.cc index 1f7029e..8ba2393 100644 --- a/ui/views/corewm/tooltip_aura.cc +++ b/ui/views/corewm/tooltip_aura.cc @@ -7,6 +7,7 @@ #include "base/command_line.h" #include "base/strings/string_split.h" #include "ui/aura/root_window.h" +#include "ui/aura/window.h" #include "ui/base/resource/resource_bundle.h" #include "ui/gfx/screen.h" #include "ui/gfx/text_elider.h" diff --git a/ui/views/examples/content_client/examples_browser_main_parts.cc b/ui/views/examples/content_client/examples_browser_main_parts.cc index d27baa1..87aee75 100644 --- a/ui/views/examples/content_client/examples_browser_main_parts.cc +++ b/ui/views/examples/content_client/examples_browser_main_parts.cc @@ -28,6 +28,7 @@ #if defined(OS_CHROMEOS) #include "ui/aura/root_window.h" #include "ui/aura/test/test_screen.h" +#include "ui/aura/window.h" #include "ui/shell/minimal_shell.h" #endif @@ -53,7 +54,7 @@ void ExamplesBrowserMainParts::PreMainMessageLoopRun() { // Ensure the X window gets mapped. minimal_shell_->root_window()->ShowRootWindow(); // Ensure Aura knows where to open new windows. - window_context = minimal_shell_->root_window(); + window_context = minimal_shell_->root_window()->window(); #elif defined(USE_AURA) aura::Env::CreateInstance(); gfx::Screen::SetScreenInstance( diff --git a/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc b/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc index 5e22f0d..51d1229 100644 --- a/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc +++ b/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc @@ -444,11 +444,11 @@ void DesktopNativeWidgetAura::InitNativeWidget( desktop_root_window_host_->CreateTooltip())); aura::client::SetTooltipClient(root_window_->window(), tooltip_controller_.get()); - root_window_->AddPreTargetHandler(tooltip_controller_.get()); + root_window_->window()->AddPreTargetHandler(tooltip_controller_.get()); if (params.opacity == Widget::InitParams::TRANSLUCENT_WINDOW) { visibility_controller_.reset(new views::corewm::VisibilityController); - aura::client::SetVisibilityClient(root_window_.get(), + aura::client::SetVisibilityClient(root_window_->window(), visibility_controller_.get()); views::corewm::SetChildWindowVisibilityChangesAnimated( root_window_->window()); @@ -458,7 +458,8 @@ void DesktopNativeWidgetAura::InitNativeWidget( if (params.type == Widget::InitParams::TYPE_WINDOW) { focus_manager_event_handler_.reset(new FocusManagerEventHandler(this)); - root_window_->AddPreTargetHandler(focus_manager_event_handler_.get()); + root_window_->window()->AddPreTargetHandler( + focus_manager_event_handler_.get()); } event_client_.reset(new DesktopEventClient); diff --git a/ui/views/widget/desktop_aura/desktop_native_widget_aura_unittest.cc b/ui/views/widget/desktop_aura/desktop_native_widget_aura_unittest.cc index 69b6b67..8390356 100644 --- a/ui/views/widget/desktop_aura/desktop_native_widget_aura_unittest.cc +++ b/ui/views/widget/desktop_aura/desktop_native_widget_aura_unittest.cc @@ -5,6 +5,7 @@ #include "ui/views/widget/desktop_aura/desktop_native_widget_aura.h" #include "ui/aura/root_window.h" +#include "ui/aura/window.h" #include "ui/views/test/views_test_base.h" #include "ui/views/widget/widget.h" diff --git a/ui/views/widget/desktop_aura/desktop_root_window_host_x11.cc b/ui/views/widget/desktop_aura/desktop_root_window_host_x11.cc index b026511..4854d97 100644 --- a/ui/views/widget/desktop_aura/desktop_root_window_host_x11.cc +++ b/ui/views/widget/desktop_aura/desktop_root_window_host_x11.cc @@ -20,6 +20,7 @@ #include "ui/aura/client/focus_client.h" #include "ui/aura/client/user_action_client.h" #include "ui/aura/root_window.h" +#include "ui/aura/window.h" #include "ui/aura/window_property.h" #include "ui/base/dragdrop/os_exchange_data_provider_aurax11.h" #include "ui/base/x/x11_util.h" @@ -132,21 +133,21 @@ DesktopRootWindowHostX11::DesktopRootWindowHostX11( } DesktopRootWindowHostX11::~DesktopRootWindowHostX11() { - root_window_->ClearProperty(kHostForRootWindow); - aura::client::SetWindowMoveClient(root_window_, NULL); + root_window_->window()->ClearProperty(kHostForRootWindow); + aura::client::SetWindowMoveClient(root_window_->window(), NULL); desktop_native_widget_aura_->OnDesktopRootWindowHostDestroyed(root_window_); } // static aura::Window* DesktopRootWindowHostX11::GetContentWindowForXID(XID xid) { aura::RootWindow* root = aura::RootWindow::GetForAcceleratedWidget(xid); - return root ? root->GetProperty(kViewsWindowForRootWindow) : NULL; + return root ? root->window()->GetProperty(kViewsWindowForRootWindow) : NULL; } // static DesktopRootWindowHostX11* DesktopRootWindowHostX11::GetHostForXID(XID xid) { aura::RootWindow* root = aura::RootWindow::GetForAcceleratedWidget(xid); - return root ? root->GetProperty(kHostForRootWindow) : NULL; + return root ? root->window()->GetProperty(kHostForRootWindow) : NULL; } // static @@ -219,8 +220,9 @@ void DesktopRootWindowHostX11::OnRootWindowCreated( const Widget::InitParams& params) { root_window_ = root; - root_window_->SetProperty(kViewsWindowForRootWindow, content_window_); - root_window_->SetProperty(kHostForRootWindow, this); + root_window_->window()->SetProperty(kViewsWindowForRootWindow, + content_window_); + root_window_->window()->SetProperty(kHostForRootWindow, this); root_window_host_delegate_ = root_window_; // If we're given a parent, we need to mark ourselves as transient to another @@ -240,7 +242,7 @@ void DesktopRootWindowHostX11::OnRootWindowCreated( x11_window_event_filter_.get()); x11_window_move_client_.reset(new X11DesktopWindowMoveClient); - aura::client::SetWindowMoveClient(root_window_, + aura::client::SetWindowMoveClient(root_window_->window(), x11_window_move_client_.get()); native_widget_delegate_->OnNativeWidgetCreated(true); @@ -255,7 +257,7 @@ scoped_ptr<aura::client::DragDropClient> DesktopRootWindowHostX11::CreateDragDropClient( DesktopNativeCursorManager* cursor_manager) { drag_drop_client_ = new DesktopDragDropClientAuraX11( - root_window_, cursor_manager, xdisplay_, xwindow_); + root_window_->window(), cursor_manager, xdisplay_, xwindow_); return scoped_ptr<aura::client::DragDropClient>(drag_drop_client_).Pass(); } @@ -1056,8 +1058,8 @@ void DesktopRootWindowHostX11::DispatchMouseEvent(ui::MouseEvent* event) { } else { // Another DesktopRootWindowHostX11 has installed itself as // capture. Translate the event's location and dispatch to the other. - event->ConvertLocationToTarget(root_window_, - g_current_capture->root_window_); + event->ConvertLocationToTarget(root_window_->window(), + g_current_capture->root_window_->window()); g_current_capture->root_window_host_delegate_->OnHostMouseEvent(event); } } @@ -1132,7 +1134,7 @@ bool DesktopRootWindowHostX11::Dispatch(const base::NativeEvent& event) { if (static_cast<int>(xev->xbutton.button) == kBackMouseButton || static_cast<int>(xev->xbutton.button) == kForwardMouseButton) { aura::client::UserActionClient* gesture_client = - aura::client::GetUserActionClient(root_window_); + aura::client::GetUserActionClient(root_window_->window()); if (gesture_client) { gesture_client->OnUserAction( static_cast<int>(xev->xbutton.button) == kBackMouseButton ? @@ -1238,7 +1240,7 @@ bool DesktopRootWindowHostX11::Dispatch(const base::NativeEvent& event) { if (button == kBackMouseButton || button == kForwardMouseButton) { aura::client::UserActionClient* gesture_client = aura::client::GetUserActionClient( - root_window_host_delegate_->AsRootWindow()); + root_window_host_delegate_->AsRootWindow()->window()); if (gesture_client) { bool reverse_direction = ui::IsTouchpadEvent(xev) && ui::IsNaturalScrollEnabled(); diff --git a/ui/views/widget/desktop_aura/desktop_screen_win.cc b/ui/views/widget/desktop_aura/desktop_screen_win.cc index f1a7767..805417d 100644 --- a/ui/views/widget/desktop_aura/desktop_screen_win.cc +++ b/ui/views/widget/desktop_aura/desktop_screen_win.cc @@ -7,6 +7,7 @@ #include "base/logging.h" #include "ui/aura/root_window.h" #include "ui/aura/root_window_host.h" +#include "ui/aura/window.h" #include "ui/gfx/display.h" #include "ui/views/widget/desktop_aura/desktop_root_window_host_win.h" #include "ui/views/widget/desktop_aura/desktop_screen.h" diff --git a/ui/views/widget/desktop_aura/desktop_screen_x11.cc b/ui/views/widget/desktop_aura/desktop_screen_x11.cc index 7b99790..cd5cffc 100644 --- a/ui/views/widget/desktop_aura/desktop_screen_x11.cc +++ b/ui/views/widget/desktop_aura/desktop_screen_x11.cc @@ -15,6 +15,7 @@ #include "base/x11/edid_parser_x11.h" #include "ui/aura/root_window.h" #include "ui/aura/root_window_host.h" +#include "ui/aura/window.h" #include "ui/base/x/x11_util.h" #include "ui/gfx/display.h" #include "ui/gfx/display_observer.h" diff --git a/ui/views/widget/desktop_aura/x11_desktop_window_move_client.cc b/ui/views/widget/desktop_aura/x11_desktop_window_move_client.cc index 651d6fa..c3b8cc5 100644 --- a/ui/views/widget/desktop_aura/x11_desktop_window_move_client.cc +++ b/ui/views/widget/desktop_aura/x11_desktop_window_move_client.cc @@ -14,6 +14,7 @@ #include "base/run_loop.h" #include "ui/aura/env.h" #include "ui/aura/root_window.h" +#include "ui/aura/window.h" #include "ui/base/x/x11_util.h" #include "ui/events/event.h" #include "ui/gfx/screen.h" diff --git a/ui/views/widget/desktop_aura/x11_window_event_filter.cc b/ui/views/widget/desktop_aura/x11_window_event_filter.cc index 740e120..e340bdb 100644 --- a/ui/views/widget/desktop_aura/x11_window_event_filter.cc +++ b/ui/views/widget/desktop_aura/x11_window_event_filter.cc @@ -10,6 +10,7 @@ #include <X11/Xlib.h> #include "ui/aura/root_window.h" +#include "ui/aura/window.h" #include "ui/aura/window_delegate.h" #include "ui/base/hit_test.h" #include "ui/events/event.h" diff --git a/ui/views/widget/widget_interactive_uitest.cc b/ui/views/widget/widget_interactive_uitest.cc index 544d7ab..19686de 100644 --- a/ui/views/widget/widget_interactive_uitest.cc +++ b/ui/views/widget/widget_interactive_uitest.cc @@ -15,6 +15,7 @@ #include "ui/aura/client/focus_client.h" #include "ui/aura/env.h" #include "ui/aura/root_window.h" +#include "ui/aura/window.h" #endif #if defined(USE_AURA) && !defined(OS_CHROMEOS) diff --git a/ui/views/win/hwnd_util_aurawin.cc b/ui/views/win/hwnd_util_aurawin.cc index a927df1..fc748184 100644 --- a/ui/views/win/hwnd_util_aurawin.cc +++ b/ui/views/win/hwnd_util_aurawin.cc @@ -5,6 +5,7 @@ #include "ui/views/win/hwnd_util.h" #include "ui/aura/root_window.h" +#include "ui/aura/window.h" #include "ui/views/widget/widget.h" namespace views { |