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 <set> | 7 #include <set> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
254 switch (event->native_event().message) { | 254 switch (event->native_event().message) { |
255 case WM_XBUTTONUP: | 255 case WM_XBUTTONUP: |
256 case WM_NCXBUTTONUP: | 256 case WM_NCXBUTTONUP: |
257 return true; | 257 return true; |
258 } | 258 } |
259 #endif | 259 #endif |
260 return false; | 260 return false; |
261 } | 261 } |
262 | 262 |
263 void GetScreenInfoForWindow(WebScreenInfo* results, aura::Window* window) { | 263 void GetScreenInfoForWindow(WebScreenInfo* results, aura::Window* window) { |
264 const gfx::Display display = window ? | 264 gfx::Screen* screen = gfx::Screen::GetScreen(); |
265 gfx::Screen::GetScreenFor(window)->GetDisplayNearestWindow(window) : | 265 const gfx::Display display = window ? screen->GetDisplayNearestWindow(window) |
266 gfx::Screen::GetScreenFor(window)->GetPrimaryDisplay(); | 266 : screen->GetPrimaryDisplay(); |
267 results->rect = display.bounds(); | 267 results->rect = display.bounds(); |
268 results->availableRect = display.work_area(); | 268 results->availableRect = display.work_area(); |
269 // TODO(derat|oshima): Don't hardcode this. Get this from display object. | 269 // TODO(derat|oshima): Don't hardcode this. Get this from display object. |
270 results->depth = 24; | 270 results->depth = 24; |
271 results->depthPerComponent = 8; | 271 results->depthPerComponent = 8; |
272 results->deviceScaleFactor = display.device_scale_factor(); | 272 results->deviceScaleFactor = display.device_scale_factor(); |
273 | 273 |
274 // The Display rotation and the WebScreenInfo orientation are not the same | 274 // The Display rotation and the WebScreenInfo orientation are not the same |
275 // angle. The former is the physical display rotation while the later is the | 275 // angle. The former is the physical display rotation while the later is the |
276 // rotation required by the content to be shown properly on the screen, in | 276 // rotation required by the content to be shown properly on the screen, in |
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
520 CreateAuraWindow(); | 520 CreateAuraWindow(); |
521 window_->SetType(ui::wm::WINDOW_TYPE_CONTROL); | 521 window_->SetType(ui::wm::WINDOW_TYPE_CONTROL); |
522 window_->Init(ui::LAYER_SOLID_COLOR); | 522 window_->Init(ui::LAYER_SOLID_COLOR); |
523 window_->SetName("RenderWidgetHostViewAura"); | 523 window_->SetName("RenderWidgetHostViewAura"); |
524 window_->layer()->SetColor(background_color_); | 524 window_->layer()->SetColor(background_color_); |
525 | 525 |
526 if (parent_view) | 526 if (parent_view) |
527 parent_view->AddChild(GetNativeView()); | 527 parent_view->AddChild(GetNativeView()); |
528 | 528 |
529 const gfx::Display display = | 529 const gfx::Display display = |
530 gfx::Screen::GetScreenFor(window_)->GetDisplayNearestWindow(window_); | 530 gfx::Screen::GetScreen()->GetDisplayNearestWindow(window_); |
531 device_scale_factor_ = display.device_scale_factor(); | 531 device_scale_factor_ = display.device_scale_factor(); |
532 } | 532 } |
533 | 533 |
534 void RenderWidgetHostViewAura::InitAsPopup( | 534 void RenderWidgetHostViewAura::InitAsPopup( |
535 RenderWidgetHostView* parent_host_view, | 535 RenderWidgetHostView* parent_host_view, |
536 const gfx::Rect& bounds_in_screen) { | 536 const gfx::Rect& bounds_in_screen) { |
537 CreateAuraWindow(); | 537 CreateAuraWindow(); |
538 popup_parent_host_view_ = | 538 popup_parent_host_view_ = |
539 static_cast<RenderWidgetHostViewAura*>(parent_host_view); | 539 static_cast<RenderWidgetHostViewAura*>(parent_host_view); |
540 | 540 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
573 aura::client::ParentWindowWithContext(window_, root, bounds_in_screen); | 573 aura::client::ParentWindowWithContext(window_, root, bounds_in_screen); |
574 | 574 |
575 SetBounds(bounds_in_screen); | 575 SetBounds(bounds_in_screen); |
576 Show(); | 576 Show(); |
577 if (NeedsMouseCapture()) | 577 if (NeedsMouseCapture()) |
578 window_->SetCapture(); | 578 window_->SetCapture(); |
579 | 579 |
580 event_filter_for_popup_exit_.reset(new EventFilterForPopupExit(this)); | 580 event_filter_for_popup_exit_.reset(new EventFilterForPopupExit(this)); |
581 | 581 |
582 const gfx::Display display = | 582 const gfx::Display display = |
583 gfx::Screen::GetScreenFor(window_)->GetDisplayNearestWindow(window_); | 583 gfx::Screen::GetScreen()->GetDisplayNearestWindow(window_); |
584 device_scale_factor_ = display.device_scale_factor(); | 584 device_scale_factor_ = display.device_scale_factor(); |
585 } | 585 } |
586 | 586 |
587 void RenderWidgetHostViewAura::InitAsFullscreen( | 587 void RenderWidgetHostViewAura::InitAsFullscreen( |
588 RenderWidgetHostView* reference_host_view) { | 588 RenderWidgetHostView* reference_host_view) { |
589 CreateAuraWindow(); | 589 CreateAuraWindow(); |
590 is_fullscreen_ = true; | 590 is_fullscreen_ = true; |
591 window_->SetType(ui::wm::WINDOW_TYPE_NORMAL); | 591 window_->SetType(ui::wm::WINDOW_TYPE_NORMAL); |
592 window_->Init(ui::LAYER_SOLID_COLOR); | 592 window_->Init(ui::LAYER_SOLID_COLOR); |
593 window_->SetName("RenderWidgetHostViewAura"); | 593 window_->SetName("RenderWidgetHostViewAura"); |
594 window_->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_FULLSCREEN); | 594 window_->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_FULLSCREEN); |
595 window_->layer()->SetColor(background_color_); | 595 window_->layer()->SetColor(background_color_); |
596 | 596 |
597 aura::Window* parent = NULL; | 597 aura::Window* parent = NULL; |
598 gfx::Rect bounds; | 598 gfx::Rect bounds; |
599 if (reference_host_view) { | 599 if (reference_host_view) { |
600 aura::Window* reference_window = | 600 aura::Window* reference_window = |
601 static_cast<RenderWidgetHostViewAura*>(reference_host_view)->window_; | 601 static_cast<RenderWidgetHostViewAura*>(reference_host_view)->window_; |
602 if (reference_window) { | 602 if (reference_window) { |
603 host_tracker_.reset(new aura::WindowTracker); | 603 host_tracker_.reset(new aura::WindowTracker); |
604 host_tracker_->Add(reference_window); | 604 host_tracker_->Add(reference_window); |
605 } | 605 } |
606 gfx::Display display = gfx::Screen::GetScreenFor(window_)-> | 606 gfx::Display display = |
607 GetDisplayNearestWindow(reference_window); | 607 gfx::Screen::GetScreen()->GetDisplayNearestWindow(reference_window); |
608 parent = reference_window->GetRootWindow(); | 608 parent = reference_window->GetRootWindow(); |
609 bounds = display.bounds(); | 609 bounds = display.bounds(); |
610 } | 610 } |
611 aura::client::ParentWindowWithContext(window_, parent, bounds); | 611 aura::client::ParentWindowWithContext(window_, parent, bounds); |
612 Show(); | 612 Show(); |
613 Focus(); | 613 Focus(); |
614 | 614 |
615 const gfx::Display display = | 615 const gfx::Display display = |
616 gfx::Screen::GetScreenFor(window_)->GetDisplayNearestWindow(window_); | 616 gfx::Screen::GetScreen()->GetDisplayNearestWindow(window_); |
617 device_scale_factor_ = display.device_scale_factor(); | 617 device_scale_factor_ = display.device_scale_factor(); |
618 } | 618 } |
619 | 619 |
620 RenderWidgetHost* RenderWidgetHostViewAura::GetRenderWidgetHost() const { | 620 RenderWidgetHost* RenderWidgetHostViewAura::GetRenderWidgetHost() const { |
621 return host_; | 621 return host_; |
622 } | 622 } |
623 | 623 |
624 void RenderWidgetHostViewAura::Show() { | 624 void RenderWidgetHostViewAura::Show() { |
625 window_->Show(); | 625 window_->Show(); |
626 | 626 |
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
986 | 986 |
987 void RenderWidgetHostViewAura::SetInsets(const gfx::Insets& insets) { | 987 void RenderWidgetHostViewAura::SetInsets(const gfx::Insets& insets) { |
988 if (insets != insets_) { | 988 if (insets != insets_) { |
989 insets_ = insets; | 989 insets_ = insets; |
990 host_->WasResized(); | 990 host_->WasResized(); |
991 } | 991 } |
992 } | 992 } |
993 | 993 |
994 void RenderWidgetHostViewAura::UpdateCursor(const WebCursor& cursor) { | 994 void RenderWidgetHostViewAura::UpdateCursor(const WebCursor& cursor) { |
995 current_cursor_ = cursor; | 995 current_cursor_ = cursor; |
996 const gfx::Display display = gfx::Screen::GetScreenFor(window_)-> | 996 const gfx::Display display = |
997 GetDisplayNearestWindow(window_); | 997 gfx::Screen::GetScreen()->GetDisplayNearestWindow(window_); |
998 current_cursor_.SetDisplayInfo(display); | 998 current_cursor_.SetDisplayInfo(display); |
999 UpdateCursorIfOverSelf(); | 999 UpdateCursorIfOverSelf(); |
1000 } | 1000 } |
1001 | 1001 |
1002 void RenderWidgetHostViewAura::SetIsLoading(bool is_loading) { | 1002 void RenderWidgetHostViewAura::SetIsLoading(bool is_loading) { |
1003 is_loading_ = is_loading; | 1003 is_loading_ = is_loading; |
1004 UpdateCursorIfOverSelf(); | 1004 UpdateCursorIfOverSelf(); |
1005 } | 1005 } |
1006 | 1006 |
1007 void RenderWidgetHostViewAura::TextInputStateChanged( | 1007 void RenderWidgetHostViewAura::TextInputStateChanged( |
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1184 HWND parent = window_->GetHost()->GetAcceleratedWidget(); | 1184 HWND parent = window_->GetHost()->GetAcceleratedWidget(); |
1185 CutoutRectsParams params; | 1185 CutoutRectsParams params; |
1186 params.widget = this; | 1186 params.widget = this; |
1187 params.cutout_rects = constrained_rects_; | 1187 params.cutout_rects = constrained_rects_; |
1188 params.geometry = &plugin_window_moves_; | 1188 params.geometry = &plugin_window_moves_; |
1189 LPARAM lparam = reinterpret_cast<LPARAM>(¶ms); | 1189 LPARAM lparam = reinterpret_cast<LPARAM>(¶ms); |
1190 EnumChildWindows(parent, SetCutoutRectsCallback, lparam); | 1190 EnumChildWindows(parent, SetCutoutRectsCallback, lparam); |
1191 } | 1191 } |
1192 | 1192 |
1193 void RenderWidgetHostViewAura::UpdateMouseLockRegion() { | 1193 void RenderWidgetHostViewAura::UpdateMouseLockRegion() { |
1194 // Clip the cursor if chrome is running on regular desktop. | 1194 RECT window_rect = |
1195 if (gfx::Screen::GetScreenFor(window_) == gfx::Screen::GetNativeScreen()) { | 1195 gfx::win::DIPToScreenRect(window_->GetBoundsInScreen()).ToRECT(); |
1196 RECT window_rect = | 1196 ::ClipCursor(&window_rect); |
1197 gfx::win::DIPToScreenRect(window_->GetBoundsInScreen()).ToRECT(); | |
1198 ::ClipCursor(&window_rect); | |
1199 } | |
1200 } | 1197 } |
1201 | 1198 |
1202 void RenderWidgetHostViewAura::OnLegacyWindowDestroyed() { | 1199 void RenderWidgetHostViewAura::OnLegacyWindowDestroyed() { |
1203 legacy_render_widget_host_HWND_ = NULL; | 1200 legacy_render_widget_host_HWND_ = NULL; |
1204 legacy_window_destroyed_ = true; | 1201 legacy_window_destroyed_ = true; |
1205 } | 1202 } |
1206 #endif | 1203 #endif |
1207 | 1204 |
1208 void RenderWidgetHostViewAura::OnSwapCompositorFrame( | 1205 void RenderWidgetHostViewAura::OnSwapCompositorFrame( |
1209 uint32_t output_surface_id, | 1206 uint32_t output_surface_id, |
(...skipping 634 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1844 const gfx::Display& new_display) { | 1841 const gfx::Display& new_display) { |
1845 } | 1842 } |
1846 | 1843 |
1847 void RenderWidgetHostViewAura::OnDisplayRemoved( | 1844 void RenderWidgetHostViewAura::OnDisplayRemoved( |
1848 const gfx::Display& old_display) { | 1845 const gfx::Display& old_display) { |
1849 } | 1846 } |
1850 | 1847 |
1851 void RenderWidgetHostViewAura::OnDisplayMetricsChanged( | 1848 void RenderWidgetHostViewAura::OnDisplayMetricsChanged( |
1852 const gfx::Display& display, uint32_t metrics) { | 1849 const gfx::Display& display, uint32_t metrics) { |
1853 // The screen info should be updated regardless of the metric change. | 1850 // The screen info should be updated regardless of the metric change. |
1854 gfx::Screen* screen = gfx::Screen::GetScreenFor(window_); | 1851 gfx::Screen* screen = gfx::Screen::GetScreen(); |
1855 if (display.id() == screen->GetDisplayNearestWindow(window_).id()) { | 1852 if (display.id() == screen->GetDisplayNearestWindow(window_).id()) { |
1856 UpdateScreenInfo(window_); | 1853 UpdateScreenInfo(window_); |
1857 current_cursor_.SetDisplayInfo(display); | 1854 current_cursor_.SetDisplayInfo(display); |
1858 UpdateCursorIfOverSelf(); | 1855 UpdateCursorIfOverSelf(); |
1859 } | 1856 } |
1860 } | 1857 } |
1861 | 1858 |
1862 //////////////////////////////////////////////////////////////////////////////// | 1859 //////////////////////////////////////////////////////////////////////////////// |
1863 // RenderWidgetHostViewAura, aura::WindowDelegate implementation: | 1860 // RenderWidgetHostViewAura, aura::WindowDelegate implementation: |
1864 | 1861 |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1914 } | 1911 } |
1915 | 1912 |
1916 void RenderWidgetHostViewAura::OnDeviceScaleFactorChanged( | 1913 void RenderWidgetHostViewAura::OnDeviceScaleFactorChanged( |
1917 float device_scale_factor) { | 1914 float device_scale_factor) { |
1918 if (!host_ || !window_->GetRootWindow()) | 1915 if (!host_ || !window_->GetRootWindow()) |
1919 return; | 1916 return; |
1920 | 1917 |
1921 UpdateScreenInfo(window_); | 1918 UpdateScreenInfo(window_); |
1922 | 1919 |
1923 device_scale_factor_ = device_scale_factor; | 1920 device_scale_factor_ = device_scale_factor; |
1924 const gfx::Display display = gfx::Screen::GetScreenFor(window_)-> | 1921 const gfx::Display display = gfx::Screen::GetScreen()-> |
1925 GetDisplayNearestWindow(window_); | 1922 GetDisplayNearestWindow(window_); |
1926 DCHECK_EQ(device_scale_factor, display.device_scale_factor()); | 1923 DCHECK_EQ(device_scale_factor, display.device_scale_factor()); |
1927 current_cursor_.SetDisplayInfo(display); | 1924 current_cursor_.SetDisplayInfo(display); |
1928 SnapToPhysicalPixelBoundary(); | 1925 SnapToPhysicalPixelBoundary(); |
1929 } | 1926 } |
1930 | 1927 |
1931 void RenderWidgetHostViewAura::OnWindowDestroying(aura::Window* window) { | 1928 void RenderWidgetHostViewAura::OnWindowDestroying(aura::Window* window) { |
1932 #if defined(OS_WIN) | 1929 #if defined(OS_WIN) |
1933 HWND parent = NULL; | 1930 HWND parent = NULL; |
1934 // If the tab was hidden and it's closed, host_->is_hidden would have been | 1931 // If the tab was hidden and it's closed, host_->is_hidden would have been |
(...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2439 overscroll_controller_->Cancel(); | 2436 overscroll_controller_->Cancel(); |
2440 | 2437 |
2441 BrowserAccessibilityManager* manager = | 2438 BrowserAccessibilityManager* manager = |
2442 host_->GetRootBrowserAccessibilityManager(); | 2439 host_->GetRootBrowserAccessibilityManager(); |
2443 if (manager) | 2440 if (manager) |
2444 manager->OnWindowBlurred(); | 2441 manager->OnWindowBlurred(); |
2445 | 2442 |
2446 // If we lose the focus while fullscreen, close the window; Pepper Flash | 2443 // If we lose the focus while fullscreen, close the window; Pepper Flash |
2447 // won't do it for us (unlike NPAPI Flash). However, we do not close the | 2444 // won't do it for us (unlike NPAPI Flash). However, we do not close the |
2448 // window if we lose the focus to a window on another display. | 2445 // window if we lose the focus to a window on another display. |
2449 gfx::Screen* screen = gfx::Screen::GetScreenFor(window_); | 2446 gfx::Screen* screen = gfx::Screen::GetScreen(); |
2450 bool focusing_other_display = | 2447 bool focusing_other_display = |
2451 gained_focus && screen->GetNumDisplays() > 1 && | 2448 gained_focus && screen->GetNumDisplays() > 1 && |
2452 (screen->GetDisplayNearestWindow(window_).id() != | 2449 (screen->GetDisplayNearestWindow(window_).id() != |
2453 screen->GetDisplayNearestWindow(gained_focus).id()); | 2450 screen->GetDisplayNearestWindow(gained_focus).id()); |
2454 if (is_fullscreen_ && !in_shutdown_ && !focusing_other_display) { | 2451 if (is_fullscreen_ && !in_shutdown_ && !focusing_other_display) { |
2455 #if defined(OS_WIN) | 2452 #if defined(OS_WIN) |
2456 // On Windows, if we are switching to a non Aura Window on a different | 2453 // On Windows, if we are switching to a non Aura Window on a different |
2457 // screen we should not close the fullscreen window. | 2454 // screen we should not close the fullscreen window. |
2458 if (!gained_focus) { | 2455 if (!gained_focus) { |
2459 POINT point = {0}; | 2456 POINT point = {0}; |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2501 host_->delegate()->GetInputEventRouter()->RemoveSurfaceIdNamespaceOwner( | 2498 host_->delegate()->GetInputEventRouter()->RemoveSurfaceIdNamespaceOwner( |
2502 GetSurfaceIdNamespace()); | 2499 GetSurfaceIdNamespace()); |
2503 } | 2500 } |
2504 delegated_frame_host_.reset(); | 2501 delegated_frame_host_.reset(); |
2505 window_observer_.reset(); | 2502 window_observer_.reset(); |
2506 if (window_) { | 2503 if (window_) { |
2507 if (window_->GetHost()) | 2504 if (window_->GetHost()) |
2508 window_->GetHost()->RemoveObserver(this); | 2505 window_->GetHost()->RemoveObserver(this); |
2509 UnlockMouse(); | 2506 UnlockMouse(); |
2510 aura::client::SetTooltipText(window_, NULL); | 2507 aura::client::SetTooltipText(window_, NULL); |
2511 gfx::Screen::GetScreenFor(window_)->RemoveObserver(this); | 2508 gfx::Screen::GetScreen()->RemoveObserver(this); |
2512 | 2509 |
2513 // This call is usually no-op since |this| object is already removed from | 2510 // This call is usually no-op since |this| object is already removed from |
2514 // the Aura root window and we don't have a way to get an input method | 2511 // the Aura root window and we don't have a way to get an input method |
2515 // object associated with the window, but just in case. | 2512 // object associated with the window, but just in case. |
2516 DetachFromInputMethod(); | 2513 DetachFromInputMethod(); |
2517 } | 2514 } |
2518 if (popup_parent_host_view_) { | 2515 if (popup_parent_host_view_) { |
2519 DCHECK(popup_parent_host_view_->popup_child_host_view_ == NULL || | 2516 DCHECK(popup_parent_host_view_->popup_child_host_view_ == NULL || |
2520 popup_parent_host_view_->popup_child_host_view_ == this); | 2517 popup_parent_host_view_->popup_child_host_view_ == this); |
2521 popup_parent_host_view_->popup_child_host_view_ = NULL; | 2518 popup_parent_host_view_->popup_child_host_view_ = NULL; |
(...skipping 15 matching lines...) Expand all Loading... |
2537 | 2534 |
2538 void RenderWidgetHostViewAura::CreateAuraWindow() { | 2535 void RenderWidgetHostViewAura::CreateAuraWindow() { |
2539 DCHECK(!window_); | 2536 DCHECK(!window_); |
2540 window_ = new aura::Window(this); | 2537 window_ = new aura::Window(this); |
2541 window_observer_.reset(new WindowObserver(this)); | 2538 window_observer_.reset(new WindowObserver(this)); |
2542 | 2539 |
2543 aura::client::SetTooltipText(window_, &tooltip_); | 2540 aura::client::SetTooltipText(window_, &tooltip_); |
2544 aura::client::SetActivationDelegate(window_, this); | 2541 aura::client::SetActivationDelegate(window_, this); |
2545 aura::client::SetFocusChangeObserver(window_, this); | 2542 aura::client::SetFocusChangeObserver(window_, this); |
2546 window_->set_layer_owner_delegate(delegated_frame_host_.get()); | 2543 window_->set_layer_owner_delegate(delegated_frame_host_.get()); |
2547 gfx::Screen::GetScreenFor(window_)->AddObserver(this); | 2544 gfx::Screen::GetScreen()->AddObserver(this); |
2548 } | 2545 } |
2549 | 2546 |
2550 void RenderWidgetHostViewAura::UpdateCursorIfOverSelf() { | 2547 void RenderWidgetHostViewAura::UpdateCursorIfOverSelf() { |
2551 if (host_->GetProcess()->FastShutdownStarted()) | 2548 if (host_->GetProcess()->FastShutdownStarted()) |
2552 return; | 2549 return; |
2553 | 2550 |
2554 aura::Window* root_window = window_->GetRootWindow(); | 2551 aura::Window* root_window = window_->GetRootWindow(); |
2555 if (!root_window) | 2552 if (!root_window) |
2556 return; | 2553 return; |
2557 | 2554 |
2558 gfx::Screen* screen = gfx::Screen::GetScreenFor(GetNativeView()); | 2555 gfx::Screen* screen = gfx::Screen::GetScreen(); |
2559 DCHECK(screen); | 2556 DCHECK(screen); |
2560 | 2557 |
2561 gfx::Point cursor_screen_point = screen->GetCursorScreenPoint(); | 2558 gfx::Point cursor_screen_point = screen->GetCursorScreenPoint(); |
2562 | 2559 |
2563 #if !defined(OS_CHROMEOS) | 2560 #if !defined(OS_CHROMEOS) |
2564 // Ignore cursor update messages if the window under the cursor is not us. | 2561 // Ignore cursor update messages if the window under the cursor is not us. |
2565 aura::Window* window_at_screen_point = screen->GetWindowAtScreenPoint( | 2562 aura::Window* window_at_screen_point = screen->GetWindowAtScreenPoint( |
2566 cursor_screen_point); | 2563 cursor_screen_point); |
2567 #if defined(OS_WIN) | 2564 #if defined(OS_WIN) |
2568 // On Windows we may fail to retrieve the aura Window at the current cursor | 2565 // On Windows we may fail to retrieve the aura Window at the current cursor |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2696 else if (!overscroll_controller_) | 2693 else if (!overscroll_controller_) |
2697 overscroll_controller_.reset(new OverscrollController()); | 2694 overscroll_controller_.reset(new OverscrollController()); |
2698 } | 2695 } |
2699 | 2696 |
2700 void RenderWidgetHostViewAura::SnapToPhysicalPixelBoundary() { | 2697 void RenderWidgetHostViewAura::SnapToPhysicalPixelBoundary() { |
2701 // The top left corner of our view in window coordinates might not land on a | 2698 // The top left corner of our view in window coordinates might not land on a |
2702 // device pixel boundary if we have a non-integer device scale. In that case, | 2699 // device pixel boundary if we have a non-integer device scale. In that case, |
2703 // to avoid the web contents area looking blurry we translate the web contents | 2700 // to avoid the web contents area looking blurry we translate the web contents |
2704 // in the +x, +y direction to land on the nearest pixel boundary. This may | 2701 // in the +x, +y direction to land on the nearest pixel boundary. This may |
2705 // cause the bottom and right edges to be clipped slightly, but that's ok. | 2702 // cause the bottom and right edges to be clipped slightly, but that's ok. |
2706 aura::Window* snapped = NULL; | 2703 aura::Window* snapped = window_->GetRootWindow(); |
2707 // On desktop, use the root window. On alternative environment (ash), | |
2708 // use the toplevel window which must be already snapped. | |
2709 if (gfx::Screen::GetScreenFor(window_) != | |
2710 gfx::Screen::GetScreenByType(gfx::SCREEN_TYPE_ALTERNATE)) { | |
2711 snapped = window_->GetRootWindow(); | |
2712 } else { | |
2713 snapped = window_->GetToplevelWindow(); | |
2714 } | |
2715 if (snapped && snapped != window_) | 2704 if (snapped && snapped != window_) |
2716 ui::SnapLayerToPhysicalPixelBoundary(snapped->layer(), window_->layer()); | 2705 ui::SnapLayerToPhysicalPixelBoundary(snapped->layer(), window_->layer()); |
2717 | 2706 |
2718 has_snapped_to_boundary_ = true; | 2707 has_snapped_to_boundary_ = true; |
2719 } | 2708 } |
2720 | 2709 |
2721 bool RenderWidgetHostViewAura::OnShowContextMenu( | 2710 bool RenderWidgetHostViewAura::OnShowContextMenu( |
2722 const ContextMenuParams& params) { | 2711 const ContextMenuParams& params) { |
2723 #if defined(OS_WIN) | 2712 #if defined(OS_WIN) |
2724 last_context_menu_params_.reset(); | 2713 last_context_menu_params_.reset(); |
(...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3078 | 3067 |
3079 //////////////////////////////////////////////////////////////////////////////// | 3068 //////////////////////////////////////////////////////////////////////////////// |
3080 // RenderWidgetHostViewBase, public: | 3069 // RenderWidgetHostViewBase, public: |
3081 | 3070 |
3082 // static | 3071 // static |
3083 void RenderWidgetHostViewBase::GetDefaultScreenInfo(WebScreenInfo* results) { | 3072 void RenderWidgetHostViewBase::GetDefaultScreenInfo(WebScreenInfo* results) { |
3084 GetScreenInfoForWindow(results, NULL); | 3073 GetScreenInfoForWindow(results, NULL); |
3085 } | 3074 } |
3086 | 3075 |
3087 } // namespace content | 3076 } // namespace content |
OLD | NEW |