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 |