| Index: ui/views/win/hwnd_message_handler.cc
|
| diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc
|
| index 04600ec2977715c9186f5a21807323a649a9b240..cba0428545cced7c65e96ccfaa6b59633da594dc 100644
|
| --- a/ui/views/win/hwnd_message_handler.cc
|
| +++ b/ui/views/win/hwnd_message_handler.cc
|
| @@ -5,6 +5,7 @@
|
| #include "ui/views/win/hwnd_message_handler.h"
|
|
|
| #include <dwmapi.h>
|
| +#include <oleacc.h>
|
| #include <shellapi.h>
|
| #include <wtsapi32.h>
|
| #pragma comment(lib, "wtsapi32.lib")
|
| @@ -1158,7 +1159,7 @@ void HWNDMessageHandler::ResetWindowRegion(bool force, bool redraw) {
|
| HRGN current_rgn = CreateRectRgn(0, 0, 0, 0);
|
| int current_rgn_result = GetWindowRgn(hwnd(), current_rgn);
|
|
|
| - CRect window_rect;
|
| + RECT window_rect;
|
| GetWindowRect(hwnd(), &window_rect);
|
| HRGN new_region;
|
| if (custom_window_region_) {
|
| @@ -1169,13 +1170,14 @@ void HWNDMessageHandler::ResetWindowRegion(bool force, bool redraw) {
|
| MONITORINFO mi;
|
| mi.cbSize = sizeof mi;
|
| GetMonitorInfo(monitor, &mi);
|
| - CRect work_rect = mi.rcWork;
|
| - work_rect.OffsetRect(-window_rect.left, -window_rect.top);
|
| + RECT work_rect = mi.rcWork;
|
| + OffsetRect(&work_rect, -window_rect.left, -window_rect.top);
|
| new_region = CreateRectRgnIndirect(&work_rect);
|
| } else {
|
| gfx::Path window_mask;
|
| - delegate_->GetWindowMask(
|
| - gfx::Size(window_rect.Width(), window_rect.Height()), &window_mask);
|
| + delegate_->GetWindowMask(gfx::Size(window_rect.right - window_rect.left,
|
| + window_rect.bottom - window_rect.top),
|
| + &window_mask);
|
| new_region = gfx::CreateHRGNFromSkPath(window_mask);
|
| }
|
|
|
| @@ -1412,7 +1414,7 @@ void HWNDMessageHandler::OnDestroy() {
|
| }
|
|
|
| void HWNDMessageHandler::OnDisplayChange(UINT bits_per_pixel,
|
| - const CSize& screen_size) {
|
| + const gfx::Size& screen_size) {
|
| delegate_->HandleDisplayChange();
|
| }
|
|
|
| @@ -1476,13 +1478,16 @@ void HWNDMessageHandler::OnGetMinMaxInfo(MINMAXINFO* minmax_info) {
|
| // Add the native frame border size to the minimum and maximum size if the
|
| // view reports its size as the client size.
|
| if (delegate_->WidgetSizeIsClientSize()) {
|
| - CRect client_rect, window_rect;
|
| + RECT client_rect, window_rect;
|
| GetClientRect(hwnd(), &client_rect);
|
| GetWindowRect(hwnd(), &window_rect);
|
| - window_rect -= client_rect;
|
| - min_window_size.Enlarge(window_rect.Width(), window_rect.Height());
|
| - if (!max_window_size.IsEmpty())
|
| - max_window_size.Enlarge(window_rect.Width(), window_rect.Height());
|
| + CR_DEFLATE_RECT(&window_rect, &client_rect);
|
| + min_window_size.Enlarge(window_rect.right - window_rect.left,
|
| + window_rect.bottom - window_rect.top);
|
| + if (!max_window_size.IsEmpty()) {
|
| + max_window_size.Enlarge(window_rect.right - window_rect.left,
|
| + window_rect.bottom - window_rect.top);
|
| + }
|
| }
|
| minmax_info->ptMinTrackSize.x = min_window_size.width();
|
| minmax_info->ptMinTrackSize.y = min_window_size.height();
|
| @@ -1615,7 +1620,7 @@ LRESULT HWNDMessageHandler::OnMouseRange(UINT message,
|
| // For mouse events (except wheel events), location is in window coordinates
|
| // and should be converted to screen coordinates for WM_NCHITTEST.
|
| if (message != WM_MOUSEWHEEL && message != WM_MOUSEHWHEEL) {
|
| - CPoint screen_point(l_param_ht);
|
| + POINT screen_point = CR_POINT_INITIALIZER_FROM_LPARAM(l_param_ht);
|
| MapWindowPoints(hwnd(), HWND_DESKTOP, &screen_point, 1);
|
| l_param_ht = MAKELPARAM(screen_point.x, screen_point.y);
|
| }
|
| @@ -1629,7 +1634,7 @@ LRESULT HWNDMessageHandler::OnMouseRange(UINT message,
|
| ReleaseCapture();
|
| // |point| is in window coordinates, but WM_NCHITTEST and TrackPopupMenu()
|
| // expect screen coordinates.
|
| - CPoint screen_point(l_param);
|
| + POINT screen_point = CR_POINT_INITIALIZER_FROM_LPARAM(l_param);
|
| MapWindowPoints(hwnd(), HWND_DESKTOP, &screen_point, 1);
|
| w_param = SendMessage(hwnd(), WM_NCHITTEST, 0,
|
| MAKELPARAM(screen_point.x, screen_point.y));
|
| @@ -1669,7 +1674,7 @@ LRESULT HWNDMessageHandler::OnMouseRange(UINT message,
|
| }
|
|
|
| MSG msg = { hwnd(), message, w_param, l_param, GetMessageTime(),
|
| - { GET_X_LPARAM(l_param), GET_Y_LPARAM(l_param) } };
|
| + { CR_GET_X_LPARAM(l_param), CR_GET_Y_LPARAM(l_param) } };
|
| ui::MouseEvent event(msg);
|
| if (!touch_ids_.empty() || ui::IsMouseEventFromTouch(message))
|
| event.set_flags(event.flags() | ui::EF_FROM_TOUCH);
|
| @@ -1715,7 +1720,7 @@ LRESULT HWNDMessageHandler::OnMouseRange(UINT message,
|
| return 0;
|
| }
|
|
|
| -void HWNDMessageHandler::OnMove(const CPoint& point) {
|
| +void HWNDMessageHandler::OnMove(const gfx::Point& point) {
|
| delegate_->HandleMove();
|
| SetMsgHandled(FALSE);
|
| }
|
| @@ -1876,7 +1881,7 @@ LRESULT HWNDMessageHandler::OnNCCalcSize(BOOL mode, LPARAM l_param) {
|
| return mode ? WVR_REDRAW : 0;
|
| }
|
|
|
| -LRESULT HWNDMessageHandler::OnNCHitTest(const CPoint& point) {
|
| +LRESULT HWNDMessageHandler::OnNCHitTest(const gfx::Point& point) {
|
| if (!delegate_->IsWidgetWindow()) {
|
| SetMsgHandled(FALSE);
|
| return 0;
|
| @@ -1887,14 +1892,14 @@ LRESULT HWNDMessageHandler::OnNCHitTest(const CPoint& point) {
|
| if (!remove_standard_frame_ && !delegate_->IsUsingCustomFrame()) {
|
| LRESULT result;
|
| if (DwmDefWindowProc(hwnd(), WM_NCHITTEST, 0,
|
| - MAKELPARAM(point.x, point.y), &result)) {
|
| + MAKELPARAM(point.x(), point.y()), &result)) {
|
| return result;
|
| }
|
| }
|
|
|
| // First, give the NonClientView a chance to test the point to see if it
|
| // provides any of the non-client area.
|
| - POINT temp = point;
|
| + POINT temp = { point.x(), point.y() };
|
| MapWindowPoints(HWND_DESKTOP, hwnd(), &temp, 1);
|
| int component = delegate_->GetNonClientComponent(gfx::Point(temp));
|
| if (component != HTNOWHERE)
|
| @@ -1904,7 +1909,7 @@ LRESULT HWNDMessageHandler::OnNCHitTest(const CPoint& point) {
|
| // us.
|
| #if defined(USE_AURA)
|
| LRESULT hit_test_code = DefWindowProc(hwnd(), WM_NCHITTEST, 0,
|
| - MAKELPARAM(point.x, point.y));
|
| + MAKELPARAM(point.x(), point.y()));
|
| if (needs_scroll_styles_) {
|
| switch (hit_test_code) {
|
| // If we faked the WS_VSCROLL and WS_HSCROLL styles for this window, then
|
| @@ -1937,8 +1942,8 @@ LRESULT HWNDMessageHandler::OnNCHitTest(const CPoint& point) {
|
| window_rect.left = window_rect.right - scroll_width;
|
| window_rect.top = window_rect.bottom - scroll_height;
|
| POINT pt;
|
| - pt.x = point.x;
|
| - pt.y = point.y;
|
| + pt.x = point.x();
|
| + pt.y = point.y();
|
| if (::PtInRect(&window_rect, pt))
|
| hit_test_code = HTCLIENT;
|
| break;
|
| @@ -1966,11 +1971,12 @@ void HWNDMessageHandler::OnNCPaint(HRGN rgn) {
|
| // We have an NC region and need to paint it. We expand the NC region to
|
| // include the dirty region of the root view. This is done to minimize
|
| // paints.
|
| - CRect window_rect;
|
| + RECT window_rect;
|
| GetWindowRect(hwnd(), &window_rect);
|
|
|
| gfx::Size root_view_size = delegate_->GetRootViewSize();
|
| - if (gfx::Size(window_rect.Width(), window_rect.Height()) != root_view_size) {
|
| + if (gfx::Size(window_rect.right - window_rect.left,
|
| + window_rect.bottom - window_rect.top) != root_view_size) {
|
| // If the size of the window differs from the size of the root view it
|
| // means we're being asked to paint before we've gotten a WM_SIZE. This can
|
| // happen when the user is interactively resizing the window. To avoid
|
| @@ -1980,10 +1986,13 @@ void HWNDMessageHandler::OnNCPaint(HRGN rgn) {
|
| return;
|
| }
|
|
|
| - CRect dirty_region;
|
| + RECT dirty_region;
|
| // A value of 1 indicates paint all.
|
| if (!rgn || rgn == reinterpret_cast<HRGN>(1)) {
|
| - dirty_region = CRect(0, 0, window_rect.Width(), window_rect.Height());
|
| + dirty_region.left = 0;
|
| + dirty_region.top = 0;
|
| + dirty_region.right = window_rect.right - window_rect.left;
|
| + dirty_region.bottom = window_rect.bottom - window_rect.top;
|
| } else {
|
| RECT rgn_bounding_box;
|
| GetRgnBox(rgn, &rgn_bounding_box);
|
| @@ -2012,8 +2021,8 @@ void HWNDMessageHandler::OnNCPaint(HRGN rgn) {
|
| // The root view has a region that needs to be painted. Include it in the
|
| // region we're going to paint.
|
|
|
| - CRect old_paint_region_crect = old_paint_region.ToRECT();
|
| - CRect tmp = dirty_region;
|
| + RECT old_paint_region_crect = old_paint_region.ToRECT();
|
| + RECT tmp = dirty_region;
|
| UnionRect(&dirty_region, &tmp, &old_paint_region_crect);
|
| }
|
|
|
| @@ -2023,9 +2032,12 @@ void HWNDMessageHandler::OnNCPaint(HRGN rgn) {
|
| // the following in a block to force paint to occur so that we can release
|
| // the dc.
|
| if (!delegate_->HandlePaintAccelerated(gfx::Rect(dirty_region))) {
|
| - gfx::CanvasSkiaPaint canvas(dc, true, dirty_region.left,
|
| - dirty_region.top, dirty_region.Width(),
|
| - dirty_region.Height());
|
| + gfx::CanvasSkiaPaint canvas(dc,
|
| + true,
|
| + dirty_region.left,
|
| + dirty_region.top,
|
| + dirty_region.right - dirty_region.left,
|
| + dirty_region.bottom - dirty_region.top);
|
| delegate_->HandlePaint(&canvas);
|
| }
|
|
|
| @@ -2181,7 +2193,7 @@ void HWNDMessageHandler::OnSettingChange(UINT flags, const wchar_t* section) {
|
| }
|
| }
|
|
|
| -void HWNDMessageHandler::OnSize(UINT param, const CSize& size) {
|
| +void HWNDMessageHandler::OnSize(UINT param, const gfx::Size& size) {
|
| RedrawWindow(hwnd(), NULL, NULL, RDW_INVALIDATE | RDW_ALLCHILDREN);
|
| // ResetWindowRegion is going to trigger WM_NCPAINT. By doing it after we've
|
| // invoked OnSize we ensure the RootView has been laid out.
|
| @@ -2204,7 +2216,7 @@ void HWNDMessageHandler::OnSize(UINT param, const CSize& size) {
|
| }
|
|
|
| void HWNDMessageHandler::OnSysCommand(UINT notification_code,
|
| - const CPoint& point) {
|
| + const gfx::Point& point) {
|
| if (!delegate_->ShouldHandleSystemCommands())
|
| return;
|
|
|
| @@ -2235,7 +2247,7 @@ void HWNDMessageHandler::OnSysCommand(UINT notification_code,
|
|
|
| // Handle SC_KEYMENU, which means that the user has pressed the ALT
|
| // key and released it, so we should focus the menu bar.
|
| - if ((notification_code & sc_mask) == SC_KEYMENU && point.x == 0) {
|
| + if ((notification_code & sc_mask) == SC_KEYMENU && point.x() == 0) {
|
| int modifiers = ui::EF_NONE;
|
| if (base::win::IsShiftPressed())
|
| modifiers |= ui::EF_SHIFT_DOWN;
|
| @@ -2256,7 +2268,7 @@ void HWNDMessageHandler::OnSysCommand(UINT notification_code,
|
| if ((notification_code & sc_mask) == SC_SIZE)
|
| in_size_loop_ = true;
|
| DefWindowProc(hwnd(), WM_SYSCOMMAND, notification_code,
|
| - MAKELPARAM(point.x, point.y));
|
| + MAKELPARAM(point.x(), point.y()));
|
| in_size_loop_ = false;
|
| }
|
| }
|
| @@ -2337,7 +2349,7 @@ void HWNDMessageHandler::OnWindowPosChanging(WINDOWPOS* window_pos) {
|
| window_pos->flags &= ~(SWP_SHOWWINDOW | SWP_HIDEWINDOW);
|
| }
|
| } else if (!GetParent(hwnd())) {
|
| - CRect window_rect;
|
| + RECT window_rect;
|
| HMONITOR monitor;
|
| gfx::Rect monitor_rect, work_area;
|
| if (GetWindowRect(hwnd(), &window_rect) &&
|
|
|