Bug 1256728: Don't force presentation during resize. r=jrmuizel draft
authorBas Schouten <bschouten@mozilla.com>
Mon, 18 Apr 2016 13:23:15 +0000
changeset 352705 fd844339a045c03fc7b1a455d0836f9deac78ec7
parent 350593 3f87c987333bc59831fe9a3142abbad591a9f3f9
child 518703 d1f3226974fefafbe6e7168eb4a65badc57000cc
push id15750
push userbschouten@mozilla.com
push dateMon, 18 Apr 2016 13:33:08 +0000
reviewersjrmuizel
bugs1256728
milestone48.0a1
Bug 1256728: Don't force presentation during resize. r=jrmuizel MozReview-Commit-ID: 6eT8XpkVrKH
widget/windows/nsWindow.cpp
widget/windows/nsWindowGfx.cpp
--- 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