Blob Blame History Raw
diff -up firefox-69.0.1/widget/gtk/WindowSurfaceWayland.cpp.old firefox-69.0.1/widget/gtk/WindowSurfaceWayland.cpp
--- firefox-69.0.1/widget/gtk/WindowSurfaceWayland.cpp.old	2019-09-19 15:05:13.586437024 +0200
+++ firefox-69.0.1/widget/gtk/WindowSurfaceWayland.cpp	2019-09-19 15:09:39.649079248 +0200
@@ -836,8 +836,15 @@ already_AddRefed<gfx::DrawTarget> Window
     mBufferScreenRect = lockedScreenRect;
   }
 
-  mDrawToWaylandBufferDirectly =
-      (windowRedraw || mRenderingCacheMode != CACHE_ALL);
+  if (mRenderingCacheMode == CACHE_ALL) {
+    mDrawToWaylandBufferDirectly = windowRedraw;
+  } else if (mRenderingCacheMode == CACHE_MISSING) {
+    mDrawToWaylandBufferDirectly = windowRedraw ||
+      ((lockSize.width*3 > lockedScreenRect.width &&
+       lockSize.height*3 > lockedScreenRect.height));
+  } else {
+    mDrawToWaylandBufferDirectly = true;
+  }
 
   if (mDrawToWaylandBufferDirectly) {
     LOGWAYLAND(("   Direct drawing\n"));