Bug 1256728: Don't force presentation during resize. r=jrmuizel
MozReview-Commit-ID: 6eT8XpkVrKH
--- a/widget/windows/nsWindow.cpp
+++ b/widget/windows/nsWindow.cpp
@@ -5785,16 +5785,17 @@ nsWindow::FinishLiveResizing(ResizeState
{
if (mResizeState == RESIZING) {
nsCOMPtr<nsIObserverService> observerService = mozilla::services::GetObserverService();
if (observerService) {
observerService->NotifyObservers(nullptr, "live-resize-end", nullptr);
}
}
mResizeState = aNewState;
+ ForcePresent();
}
/**************************************************************
*
* SECTION: Broadcast messaging
*
* Broadcast messages to all windows.
*
--- a/widget/windows/nsWindowGfx.cpp
+++ b/widget/windows/nsWindowGfx.cpp
@@ -165,18 +165,20 @@ nsIWidgetListener* nsWindow::GetPaintLis
{
if (mDestroyCalled)
return nullptr;
return mAttachedWidgetListener ? mAttachedWidgetListener : mWidgetListener;
}
void nsWindow::ForcePresent()
{
- if (CompositorBridgeChild* remoteRenderer = GetRemoteRenderer()) {
- remoteRenderer->SendForcePresent();
+ if (mResizeState != RESIZING) {
+ if (CompositorBridgeChild* remoteRenderer = GetRemoteRenderer()) {
+ remoteRenderer->SendForcePresent();
+ }
}
}
bool nsWindow::OnPaint(HDC aDC, uint32_t aNestingLevel)
{
// We never have reentrant paint events, except when we're running our RPC
// windows event spin loop. If we don't trap for this, we'll try to paint,
// but view manager will refuse to paint the surface, resulting is black