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 0e513db03d740ecc6d42ab23db1240f497c686eb..52d64131d8fb564a600083b240491202586c3e27 100644 |
--- a/ui/views/win/hwnd_message_handler.cc |
+++ b/ui/views/win/hwnd_message_handler.cc |
@@ -817,7 +817,11 @@ void HWNDMessageHandler::FrameTypeChanged() { |
SetWindowPos(hwnd(), NULL, 0, 0, 0, 0, flags | SWP_SHOWWINDOW); |
// Invalidate the window to force a paint. There may be child windows which |
// could resize in this context. Don't paint right away. |
- ::InvalidateRect(hwnd(), NULL, FALSE); |
+ base::MessageLoop::current()->PostDelayedTask( |
+ FROM_HERE, |
+ base::Bind(base::IgnoreResult(&::InvalidateRect), hwnd(), |
+ reinterpret_cast<const RECT*>(NULL), FALSE), |
+ base::TimeDelta::FromMilliseconds(500)); |
ananta
2014/08/05 00:24:03
It now appears that the bug was never fixed. We ne
sky
2014/08/05 01:30:56
This is a total hack. Why do we need to delay?
Als
|
} |
// WM_DWMCOMPOSITIONCHANGED is only sent to top level windows, however we want |
@@ -841,7 +845,7 @@ void HWNDMessageHandler::SchedulePaintInRect(const gfx::Rect& rect) { |
waiting_for_redraw_layered_window_contents_ = true; |
base::MessageLoop::current()->PostTask( |
FROM_HERE, |
- base::Bind(&HWNDMessageHandler::RedrawLayeredWindowContents, |
+ base::Bind(base::IgnoreResult(&HWNDMessageHandler::RedrawLayeredWindowContents), |
weak_factory_.GetWeakPtr())); |
} |
} else { |