| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "chrome/browser/ui/views/tabs/window_finder.h" | 5 #include "chrome/browser/ui/views/tabs/window_finder.h" |
| 6 | 6 |
| 7 #include <shobjidl.h> | 7 #include <shobjidl.h> |
| 8 | 8 |
| 9 #include "base/macros.h" | 9 #include "base/macros.h" |
| 10 #include "base/win/scoped_gdi_object.h" | 10 #include "base/win/scoped_gdi_object.h" |
| 11 #include "base/win/windows_version.h" | 11 #include "base/win/windows_version.h" |
| 12 #include "ui/aura/window.h" | 12 #include "ui/aura/window.h" |
| 13 #include "ui/gfx/screen.h" | 13 #include "ui/gfx/screen.h" |
| 14 #include "ui/gfx/win/dpi.h" | 14 #include "ui/gfx/win/dpi.h" |
| 15 #include "ui/views/widget/desktop_aura/desktop_window_tree_host_win.h" | 15 #include "ui/views/widget/desktop_aura/desktop_window_tree_host_win.h" |
| 16 #include "ui/views/win/hwnd_util.h" | 16 #include "ui/views/win/hwnd_util.h" |
| 17 | 17 |
| 18 #if defined(USE_ASH) | |
| 19 gfx::NativeWindow GetLocalProcessWindowAtPointAsh( | |
| 20 const gfx::Point& screen_point, | |
| 21 const std::set<gfx::NativeWindow>& ignore); | |
| 22 #endif | |
| 23 | |
| 24 namespace { | 18 namespace { |
| 25 | 19 |
| 26 // BaseWindowFinder ----------------------------------------------------------- | 20 // BaseWindowFinder ----------------------------------------------------------- |
| 27 | 21 |
| 28 // Base class used to locate a window. This is intended to be used with the | 22 // Base class used to locate a window. This is intended to be used with the |
| 29 // various win32 functions that iterate over windows. | 23 // various win32 functions that iterate over windows. |
| 30 // | 24 // |
| 31 // A subclass need only override ShouldStopIterating to determine when | 25 // A subclass need only override ShouldStopIterating to determine when |
| 32 // iteration should stop. | 26 // iteration should stop. |
| 33 class BaseWindowFinder { | 27 class BaseWindowFinder { |
| (...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 233 HWND w = (*it)->GetHost()->GetAcceleratedWidget(); | 227 HWND w = (*it)->GetHost()->GetAcceleratedWidget(); |
| 234 if (w) | 228 if (w) |
| 235 hwnd_set.insert(w); | 229 hwnd_set.insert(w); |
| 236 } | 230 } |
| 237 return hwnd_set; | 231 return hwnd_set; |
| 238 } | 232 } |
| 239 | 233 |
| 240 } // namespace | 234 } // namespace |
| 241 | 235 |
| 242 gfx::NativeWindow GetLocalProcessWindowAtPoint( | 236 gfx::NativeWindow GetLocalProcessWindowAtPoint( |
| 243 chrome::HostDesktopType host_desktop_type, | |
| 244 const gfx::Point& screen_point, | 237 const gfx::Point& screen_point, |
| 245 const std::set<gfx::NativeWindow>& ignore) { | 238 const std::set<gfx::NativeWindow>& ignore) { |
| 246 #if defined(USE_ASH) | |
| 247 if (host_desktop_type == chrome::HOST_DESKTOP_TYPE_ASH) | |
| 248 return GetLocalProcessWindowAtPointAsh(screen_point, ignore); | |
| 249 #endif | |
| 250 return LocalProcessWindowFinder::GetProcessWindowAtPoint( | 239 return LocalProcessWindowFinder::GetProcessWindowAtPoint( |
| 251 screen_point, RemapIgnoreSet(ignore)); | 240 screen_point, RemapIgnoreSet(ignore)); |
| 252 } | 241 } |
| OLD | NEW |