summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2019-05-13 10:49:35 +0000
committerGitHub <noreply@github.com>2019-05-13 10:49:35 +0000
commit413ba3bad12946082f4fa6918736cd8f8e2c5a62 (patch)
treed3934afdd079fafbdb7a4bad2a4c529b59d1241d
parentc7dc667e614cbff35c0d76d3647fde81f7192184 (diff)
parent996887f40fb89c1e95bf7e4ed0af1406fe2b6428 (diff)
downloaduxp-413ba3bad12946082f4fa6918736cd8f8e2c5a62.tar.gz
Merge pull request #1060 from Ionic/bugfix/scrolling-regression
When using XRENDER, create Xlib-based offscreen image surfaces.
-rw-r--r--gfx/thebes/gfxPlatformGtk.cpp13
1 files changed, 5 insertions, 8 deletions
diff --git a/gfx/thebes/gfxPlatformGtk.cpp b/gfx/thebes/gfxPlatformGtk.cpp
index be75332d65..6b55935248 100644
--- a/gfx/thebes/gfxPlatformGtk.cpp
+++ b/gfx/thebes/gfxPlatformGtk.cpp
@@ -156,7 +156,7 @@ gfxPlatformGtk::CreateOffscreenSurface(const IntSize& aSize,
if (gdkScreen) {
// When forcing PaintedLayers to use image surfaces for content,
// force creation of gfxImageSurface surfaces.
- if (gfxVars::UseXRender() && !UseImageOffscreenSurfaces()) {
+ if (gfxVars::UseXRender()) {
Screen *screen = gdk_x11_screen_get_xscreen(gdkScreen);
XRenderPictFormat* xrenderFormat =
gfxXlibSurface::FindRenderFormat(DisplayOfScreen(screen),
@@ -166,13 +166,6 @@ gfxPlatformGtk::CreateOffscreenSurface(const IntSize& aSize,
newSurface = gfxXlibSurface::Create(screen, xrenderFormat,
aSize);
}
- } else {
- // We're not going to use XRender, so we don't need to
- // search for a render format
- newSurface = new gfxImageSurface(aSize, aFormat);
- // The gfxImageSurface ctor zeroes this for us, no need to
- // waste time clearing again
- needsClear = false;
}
}
#endif
@@ -182,6 +175,10 @@ gfxPlatformGtk::CreateOffscreenSurface(const IntSize& aSize,
// e.g., no display, no RENDER, bad size, etc.
// Fall back to image surface for the data.
newSurface = new gfxImageSurface(aSize, aFormat);
+
+ // The gfxImageSurface ctor zeroes this for us, no need to
+ // waste time clearing again
+ needsClear = false;
}
if (newSurface->CairoStatus()) {