firefox/firefox-wayland-cache-missi...

22 lines
956 B
Diff

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"));