| 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 653fe3c76ac42ddcf43c5fbee7f9ee4307cca0dc..751278f71c07985e8d460925d786dd0df4a76227 100644
|
| --- a/ui/views/win/hwnd_message_handler.cc
|
| +++ b/ui/views/win/hwnd_message_handler.cc
|
| @@ -27,7 +27,6 @@
|
| #include "ui/events/event_utils.h"
|
| #include "ui/events/keycodes/keyboard_code_conversion_win.h"
|
| #include "ui/gfx/canvas.h"
|
| -#include "ui/gfx/canvas_skia_paint.h"
|
| #include "ui/gfx/geometry/insets.h"
|
| #include "ui/gfx/icon_util.h"
|
| #include "ui/gfx/path.h"
|
| @@ -207,34 +206,6 @@ BOOL CALLBACK SendDwmCompositionChanged(HWND window, LPARAM param) {
|
| return TRUE;
|
| }
|
|
|
| -// See comments in OnNCPaint() for details of this struct.
|
| -struct ClipState {
|
| - // The window being painted.
|
| - HWND parent;
|
| -
|
| - // DC painting to.
|
| - HDC dc;
|
| -
|
| - // Origin of the window in terms of the screen.
|
| - int x;
|
| - int y;
|
| -};
|
| -
|
| -// See comments in OnNCPaint() for details of this function.
|
| -static BOOL CALLBACK ClipDCToChild(HWND window, LPARAM param) {
|
| - ClipState* clip_state = reinterpret_cast<ClipState*>(param);
|
| - if (GetParent(window) == clip_state->parent && IsWindowVisible(window)) {
|
| - RECT bounds;
|
| - GetWindowRect(window, &bounds);
|
| - ExcludeClipRect(clip_state->dc,
|
| - bounds.left - clip_state->x,
|
| - bounds.top - clip_state->y,
|
| - bounds.right - clip_state->x,
|
| - bounds.bottom - clip_state->y);
|
| - }
|
| - return TRUE;
|
| -}
|
| -
|
| // The thickness of an auto-hide taskbar in pixels.
|
| const int kAutoHideTaskbarThicknessPx = 2;
|
|
|
| @@ -2083,19 +2054,6 @@ void HWNDMessageHandler::OnNCPaint(HRGN rgn) {
|
| OffsetRect(&dirty_region, -window_rect.left, -window_rect.top);
|
| }
|
|
|
| - // In theory GetDCEx should do what we want, but I couldn't get it to work.
|
| - // In particular the docs mentiond DCX_CLIPCHILDREN, but as far as I can tell
|
| - // it doesn't work at all. So, instead we get the DC for the window then
|
| - // manually clip out the children.
|
| - HDC dc = GetWindowDC(hwnd());
|
| - ClipState clip_state;
|
| - clip_state.x = window_rect.left;
|
| - clip_state.y = window_rect.top;
|
| - clip_state.parent = hwnd();
|
| - clip_state.dc = dc;
|
| - EnumChildWindows(hwnd(), &ClipDCToChild,
|
| - reinterpret_cast<LPARAM>(&clip_state));
|
| -
|
| gfx::Rect old_paint_region = invalid_rect_;
|
| if (!old_paint_region.IsEmpty()) {
|
| // The root view has a region that needs to be painted. Include it in the
|
| @@ -2107,21 +2065,8 @@ void HWNDMessageHandler::OnNCPaint(HRGN rgn) {
|
| }
|
|
|
| SchedulePaintInRect(gfx::Rect(dirty_region));
|
| + delegate_->HandlePaintAccelerated(gfx::Rect(dirty_region));
|
|
|
| - // gfx::CanvasSkiaPaint's destructor does the actual painting. As such, wrap
|
| - // 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.right - dirty_region.left,
|
| - dirty_region.bottom - dirty_region.top);
|
| - delegate_->HandlePaint(&canvas);
|
| - }
|
| -
|
| - ReleaseDC(hwnd(), dc);
|
| // When using a custom frame, we want to avoid calling DefWindowProc() since
|
| // that may render artifacts.
|
| SetMsgHandled(delegate_->IsUsingCustomFrame());
|
| @@ -2178,11 +2123,8 @@ void HWNDMessageHandler::OnPaint(HDC dc) {
|
| HDC display_dc = BeginPaint(hwnd(), &ps);
|
| CHECK(display_dc);
|
|
|
| - // Try to paint accelerated first.
|
| - if (!IsRectEmpty(&ps.rcPaint) &&
|
| - !delegate_->HandlePaintAccelerated(gfx::Rect(ps.rcPaint))) {
|
| - delegate_->HandlePaint(NULL);
|
| - }
|
| + if (!IsRectEmpty(&ps.rcPaint))
|
| + delegate_->HandlePaintAccelerated(gfx::Rect(ps.rcPaint));
|
|
|
| EndPaint(hwnd(), &ps);
|
| }
|
|
|