| 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 751278f71c07985e8d460925d786dd0df4a76227..b48a4db5ddb2d27be422bc3af4cf0ca18a0701a8 100644
|
| --- a/ui/views/win/hwnd_message_handler.cc
|
| +++ b/ui/views/win/hwnd_message_handler.cc
|
| @@ -319,9 +319,6 @@ HWNDMessageHandler::HWNDMessageHandler(HWNDMessageHandlerDelegate* delegate)
|
| lock_updates_count_(0),
|
| ignore_window_pos_changes_(false),
|
| last_monitor_(NULL),
|
| - use_layered_buffer_(false),
|
| - layered_alpha_(255),
|
| - waiting_for_redraw_layered_window_contents_(false),
|
| is_first_nccalc_(true),
|
| menu_depth_(0),
|
| id_generator_(0),
|
| @@ -788,35 +785,6 @@ void HWNDMessageHandler::FrameTypeChanged() {
|
| }
|
| }
|
|
|
| -void HWNDMessageHandler::SchedulePaintInRect(const gfx::Rect& rect) {
|
| - if (use_layered_buffer_) {
|
| - // We must update the back-buffer immediately, since Windows' handling of
|
| - // invalid rects is somewhat mysterious.
|
| - invalid_rect_.Union(rect);
|
| -
|
| - // In some situations, such as drag and drop, when Windows itself runs a
|
| - // nested message loop our message loop appears to be starved and we don't
|
| - // receive calls to DidProcessMessage(). This only seems to affect layered
|
| - // windows, so we schedule a redraw manually using a task, since those never
|
| - // seem to be starved. Also, wtf.
|
| - if (!waiting_for_redraw_layered_window_contents_) {
|
| - waiting_for_redraw_layered_window_contents_ = true;
|
| - base::MessageLoop::current()->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&HWNDMessageHandler::RedrawLayeredWindowContents,
|
| - weak_factory_.GetWeakPtr()));
|
| - }
|
| - } else {
|
| - // InvalidateRect() expects client coordinates.
|
| - RECT r = rect.ToRECT();
|
| - InvalidateRect(hwnd(), &r, FALSE);
|
| - }
|
| -}
|
| -
|
| -void HWNDMessageHandler::SetOpacity(BYTE opacity) {
|
| - layered_alpha_ = opacity;
|
| -}
|
| -
|
| void HWNDMessageHandler::SetWindowIcons(const gfx::ImageSkia& window_icon,
|
| const gfx::ImageSkia& app_icon) {
|
| if (!window_icon.isNull()) {
|
| @@ -1108,8 +1076,6 @@ void HWNDMessageHandler::TrackMouseEvents(DWORD mouse_tracking_flags) {
|
| void HWNDMessageHandler::ClientAreaSizeChanged() {
|
| gfx::Size s = GetClientAreaBounds().size();
|
| delegate_->HandleClientSizeChanged(s);
|
| - if (use_layered_buffer_)
|
| - layered_window_contents_.reset(new gfx::Canvas(s, 1.0f, false));
|
| }
|
|
|
| bool HWNDMessageHandler::GetClientAreaInsets(gfx::Insets* insets) const {
|
| @@ -1239,35 +1205,6 @@ void HWNDMessageHandler::UnlockUpdates(bool force) {
|
| }
|
| }
|
|
|
| -void HWNDMessageHandler::RedrawLayeredWindowContents() {
|
| - waiting_for_redraw_layered_window_contents_ = false;
|
| - if (invalid_rect_.IsEmpty())
|
| - return;
|
| -
|
| - // We need to clip to the dirty rect ourselves.
|
| - layered_window_contents_->sk_canvas()->save();
|
| - double scale = gfx::GetDPIScale();
|
| - layered_window_contents_->sk_canvas()->scale(
|
| - SkScalar(scale),SkScalar(scale));
|
| - layered_window_contents_->ClipRect(invalid_rect_);
|
| - delegate_->PaintLayeredWindow(layered_window_contents_.get());
|
| - layered_window_contents_->sk_canvas()->scale(
|
| - SkScalar(1.0/scale),SkScalar(1.0/scale));
|
| - layered_window_contents_->sk_canvas()->restore();
|
| -
|
| - RECT wr;
|
| - GetWindowRect(hwnd(), &wr);
|
| - SIZE size = {wr.right - wr.left, wr.bottom - wr.top};
|
| - POINT position = {wr.left, wr.top};
|
| - HDC dib_dc = skia::BeginPlatformPaint(layered_window_contents_->sk_canvas());
|
| - POINT zero = {0, 0};
|
| - BLENDFUNCTION blend = {AC_SRC_OVER, 0, layered_alpha_, AC_SRC_ALPHA};
|
| - UpdateLayeredWindow(hwnd(), NULL, &position, &size, dib_dc, &zero,
|
| - RGB(0xFF, 0xFF, 0xFF), &blend, ULW_ALPHA);
|
| - invalid_rect_.SetRect(0, 0, 0, 0);
|
| - skia::EndPlatformPaint(layered_window_contents_->sk_canvas());
|
| -}
|
| -
|
| void HWNDMessageHandler::ForceRedrawWindow(int attempts) {
|
| if (ui::IsWorkstationLocked()) {
|
| // Presents will continue to fail as long as the input desktop is
|
| @@ -1365,8 +1302,6 @@ LRESULT HWNDMessageHandler::OnCreate(CREATESTRUCT* create_struct) {
|
| tracked_objects::ScopedTracker tracking_profile1(
|
| FROM_HERE_WITH_EXPLICIT_FUNCTION("440919 HWNDMessageHandler::OnCreate1"));
|
|
|
| - use_layered_buffer_ = !!(window_ex_style() & WS_EX_LAYERED);
|
| -
|
| if (window_ex_style() & WS_EX_COMPOSITED) {
|
| // TODO(vadimt): Remove ScopedTracker below once crbug.com/440919 is fixed.
|
| tracked_objects::ScopedTracker tracking_profile2(
|
| @@ -2054,17 +1989,6 @@ void HWNDMessageHandler::OnNCPaint(HRGN rgn) {
|
| OffsetRect(&dirty_region, -window_rect.left, -window_rect.top);
|
| }
|
|
|
| - 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
|
| - // region we're going to paint.
|
| -
|
| - RECT old_paint_region_crect = old_paint_region.ToRECT();
|
| - RECT tmp = dirty_region;
|
| - UnionRect(&dirty_region, &tmp, &old_paint_region_crect);
|
| - }
|
| -
|
| - SchedulePaintInRect(gfx::Rect(dirty_region));
|
| delegate_->HandlePaintAccelerated(gfx::Rect(dirty_region));
|
|
|
| // When using a custom frame, we want to avoid calling DefWindowProc() since
|
|
|