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/views/win/hwnd_message_handler.h" | 5 #include "ui/views/win/hwnd_message_handler.h" |
6 | 6 |
7 #include <dwmapi.h> | 7 #include <dwmapi.h> |
8 #include <shellapi.h> | 8 #include <shellapi.h> |
9 #include <wtsapi32.h> | 9 #include <wtsapi32.h> |
10 #pragma comment(lib, "wtsapi32.lib") | 10 #pragma comment(lib, "wtsapi32.lib") |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
179 gfx::Rect* monitor_rect, | 179 gfx::Rect* monitor_rect, |
180 gfx::Rect* work_area) { | 180 gfx::Rect* work_area) { |
181 DCHECK(monitor); | 181 DCHECK(monitor); |
182 DCHECK(monitor_rect); | 182 DCHECK(monitor_rect); |
183 DCHECK(work_area); | 183 DCHECK(work_area); |
184 *monitor = MonitorFromRect(&rect, MONITOR_DEFAULTTONULL); | 184 *monitor = MonitorFromRect(&rect, MONITOR_DEFAULTTONULL); |
185 if (!*monitor) | 185 if (!*monitor) |
186 return false; | 186 return false; |
187 MONITORINFO monitor_info = { 0 }; | 187 MONITORINFO monitor_info = { 0 }; |
188 monitor_info.cbSize = sizeof(monitor_info); | 188 monitor_info.cbSize = sizeof(monitor_info); |
189 base::win::GetMonitorInfoWrapper(*monitor, &monitor_info); | 189 GetMonitorInfo(*monitor, &monitor_info); |
190 *monitor_rect = gfx::Rect(monitor_info.rcMonitor); | 190 *monitor_rect = gfx::Rect(monitor_info.rcMonitor); |
191 *work_area = gfx::Rect(monitor_info.rcWork); | 191 *work_area = gfx::Rect(monitor_info.rcWork); |
192 return true; | 192 return true; |
193 } | 193 } |
194 | 194 |
195 struct FindOwnedWindowsData { | 195 struct FindOwnedWindowsData { |
196 HWND window; | 196 HWND window; |
197 std::vector<Widget*> owned_widgets; | 197 std::vector<Widget*> owned_widgets; |
198 }; | 198 }; |
199 | 199 |
(...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
543 // GetWindowPlacement can return misleading position if a normalized | 543 // GetWindowPlacement can return misleading position if a normalized |
544 // window was resized using Aero Snap feature (see comment 9 in bug | 544 // window was resized using Aero Snap feature (see comment 9 in bug |
545 // 36421). As a workaround, using GetWindowRect for normalized windows. | 545 // 36421). As a workaround, using GetWindowRect for normalized windows. |
546 const bool succeeded = GetWindowRect(hwnd(), &wp.rcNormalPosition) != 0; | 546 const bool succeeded = GetWindowRect(hwnd(), &wp.rcNormalPosition) != 0; |
547 DCHECK(succeeded); | 547 DCHECK(succeeded); |
548 | 548 |
549 *bounds = gfx::Rect(wp.rcNormalPosition); | 549 *bounds = gfx::Rect(wp.rcNormalPosition); |
550 } else { | 550 } else { |
551 MONITORINFO mi; | 551 MONITORINFO mi; |
552 mi.cbSize = sizeof(mi); | 552 mi.cbSize = sizeof(mi); |
553 const bool succeeded = base::win::GetMonitorInfoWrapper( | 553 const bool succeeded = GetMonitorInfo( |
554 MonitorFromWindow(hwnd(), MONITOR_DEFAULTTONEAREST), &mi) != 0; | 554 MonitorFromWindow(hwnd(), MONITOR_DEFAULTTONEAREST), &mi) != 0; |
555 DCHECK(succeeded); | 555 DCHECK(succeeded); |
556 | 556 |
557 *bounds = gfx::Rect(wp.rcNormalPosition); | 557 *bounds = gfx::Rect(wp.rcNormalPosition); |
558 // Convert normal position from workarea coordinates to screen | 558 // Convert normal position from workarea coordinates to screen |
559 // coordinates. | 559 // coordinates. |
560 bounds->Offset(mi.rcWork.left - mi.rcMonitor.left, | 560 bounds->Offset(mi.rcWork.left - mi.rcMonitor.left, |
561 mi.rcWork.top - mi.rcMonitor.top); | 561 mi.rcWork.top - mi.rcMonitor.top); |
562 } | 562 } |
563 } | 563 } |
(...skipping 597 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1161 CRect window_rect; | 1161 CRect window_rect; |
1162 GetWindowRect(hwnd(), &window_rect); | 1162 GetWindowRect(hwnd(), &window_rect); |
1163 HRGN new_region; | 1163 HRGN new_region; |
1164 if (custom_window_region_) { | 1164 if (custom_window_region_) { |
1165 new_region = ::CreateRectRgn(0, 0, 0, 0); | 1165 new_region = ::CreateRectRgn(0, 0, 0, 0); |
1166 ::CombineRgn(new_region, custom_window_region_.Get(), NULL, RGN_COPY); | 1166 ::CombineRgn(new_region, custom_window_region_.Get(), NULL, RGN_COPY); |
1167 } else if (IsMaximized()) { | 1167 } else if (IsMaximized()) { |
1168 HMONITOR monitor = MonitorFromWindow(hwnd(), MONITOR_DEFAULTTONEAREST); | 1168 HMONITOR monitor = MonitorFromWindow(hwnd(), MONITOR_DEFAULTTONEAREST); |
1169 MONITORINFO mi; | 1169 MONITORINFO mi; |
1170 mi.cbSize = sizeof mi; | 1170 mi.cbSize = sizeof mi; |
1171 base::win::GetMonitorInfoWrapper(monitor, &mi); | 1171 GetMonitorInfo(monitor, &mi); |
1172 CRect work_rect = mi.rcWork; | 1172 CRect work_rect = mi.rcWork; |
1173 work_rect.OffsetRect(-window_rect.left, -window_rect.top); | 1173 work_rect.OffsetRect(-window_rect.left, -window_rect.top); |
1174 new_region = CreateRectRgnIndirect(&work_rect); | 1174 new_region = CreateRectRgnIndirect(&work_rect); |
1175 } else { | 1175 } else { |
1176 gfx::Path window_mask; | 1176 gfx::Path window_mask; |
1177 delegate_->GetWindowMask( | 1177 delegate_->GetWindowMask( |
1178 gfx::Size(window_rect.Width(), window_rect.Height()), &window_mask); | 1178 gfx::Size(window_rect.Width(), window_rect.Height()), &window_mask); |
1179 new_region = gfx::CreateHRGNFromSkPath(window_mask); | 1179 new_region = gfx::CreateHRGNFromSkPath(window_mask); |
1180 } | 1180 } |
1181 | 1181 |
(...skipping 1206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2388 SetMsgHandled(FALSE); | 2388 SetMsgHandled(FALSE); |
2389 } | 2389 } |
2390 | 2390 |
2391 void HWNDMessageHandler::HandleTouchEvents(const TouchEvents& touch_events) { | 2391 void HWNDMessageHandler::HandleTouchEvents(const TouchEvents& touch_events) { |
2392 base::WeakPtr<HWNDMessageHandler> ref(weak_factory_.GetWeakPtr()); | 2392 base::WeakPtr<HWNDMessageHandler> ref(weak_factory_.GetWeakPtr()); |
2393 for (size_t i = 0; i < touch_events.size() && ref; ++i) | 2393 for (size_t i = 0; i < touch_events.size() && ref; ++i) |
2394 delegate_->HandleTouchEvent(touch_events[i]); | 2394 delegate_->HandleTouchEvent(touch_events[i]); |
2395 } | 2395 } |
2396 | 2396 |
2397 } // namespace views | 2397 } // namespace views |
OLD | NEW |