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

Side by Side Diff: ash/shell.cc

Issue 10696002: ASH: Use virtual screen coordinates in Display::bounds() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sync Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ash/screen_ash.cc ('k') | chrome/browser/ui/webui/options2/chromeos/display_options_handler.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/shell.h" 5 #include "ash/shell.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 9
10 #include "ash/accelerators/focus_manager_factory.h" 10 #include "ash/accelerators/focus_manager_factory.h"
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 } 314 }
315 315
316 // static 316 // static
317 aura::RootWindow* Shell::GetRootWindowAt(const gfx::Point& point) { 317 aura::RootWindow* Shell::GetRootWindowAt(const gfx::Point& point) {
318 if (!internal::DisplayController::IsVirtualScreenCoordinatesEnabled()) 318 if (!internal::DisplayController::IsVirtualScreenCoordinatesEnabled())
319 return GetPrimaryRootWindow(); 319 return GetPrimaryRootWindow();
320 RootWindowList root_windows = GetAllRootWindows(); 320 RootWindowList root_windows = GetAllRootWindows();
321 for (RootWindowList::const_iterator iter = root_windows.begin(); 321 for (RootWindowList::const_iterator iter = root_windows.begin();
322 iter != root_windows.end(); ++iter) { 322 iter != root_windows.end(); ++iter) {
323 aura::RootWindow* root_window = *iter; 323 aura::RootWindow* root_window = *iter;
324 if (root_window->bounds().Contains(point)) 324 const gfx::Display& display =
325 gfx::Screen::GetDisplayNearestWindow(root_window);
326 if (display.bounds().Contains(point))
325 return root_window; 327 return root_window;
326 } 328 }
327 // Fallback to the primary window if there is no root window containing 329 // Fallback to the primary window if there is no root window containing
328 // the |point|. 330 // the |point|.
329 return GetPrimaryRootWindow(); 331 return GetPrimaryRootWindow();
330 } 332 }
331 333
332 // static 334 // static
333 aura::RootWindow* Shell::GetRootWindowMatching(const gfx::Rect& rect) { 335 aura::RootWindow* Shell::GetRootWindowMatching(const gfx::Rect& rect) {
334 if (!internal::DisplayController::IsVirtualScreenCoordinatesEnabled()) 336 if (!internal::DisplayController::IsVirtualScreenCoordinatesEnabled())
335 return GetPrimaryRootWindow(); 337 return GetPrimaryRootWindow();
336 if (rect.IsEmpty()) 338 if (rect.IsEmpty())
337 return GetRootWindowAt(rect.origin()); 339 return GetRootWindowAt(rect.origin());
338 RootWindowList root_windows = GetAllRootWindows(); 340 RootWindowList root_windows = GetAllRootWindows();
339 int max = 0; 341 int max = 0;
340 aura::RootWindow* matching = NULL; 342 aura::RootWindow* matching = NULL;
341 for (RootWindowList::const_iterator iter = root_windows.begin(); 343 for (RootWindowList::const_iterator iter = root_windows.begin();
342 iter != root_windows.end(); ++iter) { 344 iter != root_windows.end(); ++iter) {
343 aura::RootWindow* root_window = *iter; 345 aura::RootWindow* root_window = *iter;
344 gfx::Rect intersect = root_window->bounds().Intersect(rect); 346 const gfx::Display& display =
347 gfx::Screen::GetDisplayNearestWindow(root_window);
348 gfx::Rect intersect = display.bounds().Intersect(rect);
345 int area = intersect.width() * intersect.height(); 349 int area = intersect.width() * intersect.height();
346 if (area > max) { 350 if (area > max) {
347 max = area; 351 max = area;
348 matching = root_window; 352 matching = root_window;
349 } 353 }
350 } 354 }
351 // Fallback to the primary window if there is no matching root window. 355 // Fallback to the primary window if there is no matching root window.
352 return matching ? matching : GetPrimaryRootWindow(); 356 return matching ? matching : GetPrimaryRootWindow();
353 } 357 }
354 358
(...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after
780 } 784 }
781 785
782 void Shell::ShowCursor(bool visible) { 786 void Shell::ShowCursor(bool visible) {
783 RootWindowList root_windows = GetAllRootWindows(); 787 RootWindowList root_windows = GetAllRootWindows();
784 for (RootWindowList::iterator iter = root_windows.begin(); 788 for (RootWindowList::iterator iter = root_windows.begin();
785 iter != root_windows.end(); ++iter) 789 iter != root_windows.end(); ++iter)
786 (*iter)->ShowCursor(visible); 790 (*iter)->ShowCursor(visible);
787 } 791 }
788 792
789 } // namespace ash 793 } // namespace ash
OLDNEW
« no previous file with comments | « ash/screen_ash.cc ('k') | chrome/browser/ui/webui/options2/chromeos/display_options_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698