diff options
author | Moonchild <moonchild@palemoon.org> | 2019-05-13 10:49:35 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-13 10:49:35 +0000 |
commit | 413ba3bad12946082f4fa6918736cd8f8e2c5a62 (patch) | |
tree | d3934afdd079fafbdb7a4bad2a4c529b59d1241d | |
parent | c7dc667e614cbff35c0d76d3647fde81f7192184 (diff) | |
parent | 996887f40fb89c1e95bf7e4ed0af1406fe2b6428 (diff) | |
download | uxp-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.cpp | 13 |
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()) { |