Chromium Code Reviews| 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 "ui/gfx/win/hwnd_util.h" | 5 #include "ui/gfx/win/hwnd_util.h" |
| 6 | 6 |
| 7 #include "base/i18n/rtl.h" | 7 #include "base/i18n/rtl.h" |
| 8 #include "base/profiler/scoped_tracker.h" | |
| 8 #include "base/strings/string_util.h" | 9 #include "base/strings/string_util.h" |
| 9 #include "base/tracked_objects.h" | 10 #include "base/tracked_objects.h" |
| 10 #include "base/win/metro.h" | 11 #include "base/win/metro.h" |
| 11 #include "base/win/win_util.h" | 12 #include "base/win/win_util.h" |
| 12 #include "ui/gfx/geometry/point.h" | 13 #include "ui/gfx/geometry/point.h" |
| 13 #include "ui/gfx/geometry/rect.h" | 14 #include "ui/gfx/geometry/rect.h" |
| 14 #include "ui/gfx/geometry/size.h" | 15 #include "ui/gfx/geometry/size.h" |
| 15 | 16 |
| 16 namespace gfx { | 17 namespace gfx { |
| 17 | 18 |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 105 return oldwindow_proc; | 106 return oldwindow_proc; |
| 106 } | 107 } |
| 107 | 108 |
| 108 void* SetWindowUserData(HWND hwnd, void* user_data) { | 109 void* SetWindowUserData(HWND hwnd, void* user_data) { |
| 109 return | 110 return |
| 110 reinterpret_cast<void*>(SetWindowLongPtr(hwnd, GWLP_USERDATA, | 111 reinterpret_cast<void*>(SetWindowLongPtr(hwnd, GWLP_USERDATA, |
| 111 reinterpret_cast<LONG_PTR>(user_data))); | 112 reinterpret_cast<LONG_PTR>(user_data))); |
| 112 } | 113 } |
| 113 | 114 |
| 114 void* GetWindowUserData(HWND hwnd) { | 115 void* GetWindowUserData(HWND hwnd) { |
| 116 // TODO(vadimt): Remove ScopedTracker below once crbug.com/440919 is fixed. | |
| 117 tracked_objects::ScopedTracker tracking_profile( | |
| 118 FROM_HERE_WITH_EXPLICIT_FUNCTION("440919 GetWindowUserData")); | |
| 119 | |
| 115 DWORD process_id = 0; | 120 DWORD process_id = 0; |
| 116 GetWindowThreadProcessId(hwnd, &process_id); | 121 GetWindowThreadProcessId(hwnd, &process_id); |
| 117 // A window outside the current process needs to be ignored. | 122 // A window outside the current process needs to be ignored. |
| 118 if (process_id != ::GetCurrentProcessId()) | 123 if (process_id != ::GetCurrentProcessId()) |
| 119 return NULL; | 124 return NULL; |
|
cpu_(ooo_6.6-7.5)
2015/01/06 20:46:13
It would be very surprising if this is a bottlenec
| |
| 120 return reinterpret_cast<void*>(GetWindowLongPtr(hwnd, GWLP_USERDATA)); | 125 return reinterpret_cast<void*>(GetWindowLongPtr(hwnd, GWLP_USERDATA)); |
| 121 } | 126 } |
| 122 | 127 |
| 123 #pragma warning(pop) | 128 #pragma warning(pop) |
| 124 | 129 |
| 125 bool DoesWindowBelongToActiveWindow(HWND window) { | 130 bool DoesWindowBelongToActiveWindow(HWND window) { |
| 126 DCHECK(window); | 131 DCHECK(window); |
| 127 HWND top_window = ::GetAncestor(window, GA_ROOT); | 132 HWND top_window = ::GetAncestor(window, GA_ROOT); |
| 128 if (!top_window) | 133 if (!top_window) |
| 129 return false; | 134 return false; |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 244 HMODULE metro = base::win::GetMetroModule(); | 249 HMODULE metro = base::win::GetMetroModule(); |
| 245 if (!metro) | 250 if (!metro) |
| 246 return get_real_hwnd ? ::GetDesktopWindow() : HWND_DESKTOP; | 251 return get_real_hwnd ? ::GetDesktopWindow() : HWND_DESKTOP; |
| 247 // In windows 8 metro-mode the root window is not the desktop. | 252 // In windows 8 metro-mode the root window is not the desktop. |
| 248 RootWindow root_window = | 253 RootWindow root_window = |
| 249 reinterpret_cast<RootWindow>(::GetProcAddress(metro, "GetRootWindow")); | 254 reinterpret_cast<RootWindow>(::GetProcAddress(metro, "GetRootWindow")); |
| 250 return root_window(); | 255 return root_window(); |
| 251 } | 256 } |
| 252 | 257 |
| 253 } // namespace gfx | 258 } // namespace gfx |
| OLD | NEW |