diff options
Diffstat (limited to 'mozilla-1180971.patch')
-rw-r--r-- | mozilla-1180971.patch | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/mozilla-1180971.patch b/mozilla-1180971.patch new file mode 100644 index 0000000..a83bfb2 --- /dev/null +++ b/mozilla-1180971.patch @@ -0,0 +1,50 @@ +# HG changeset patch +# User Andrew Comminos <acomminos@mozilla.com> + +Bug 1180971 - Fix X11 SHM invalidation regions on HiDPI with GTK3. r=karlt + +diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp +index 19b634e..064116c 100644 +--- a/widget/gtk/nsWindow.cpp ++++ b/widget/gtk/nsWindow.cpp +@@ -2264,17 +2264,17 @@ nsWindow::OnExposeEvent(cairo_t *cr) + ctx->SetOperator(gfxContext::OPERATOR_SOURCE); + ctx->SetPattern(pattern); + ctx->Paint(); + } + } + } + # ifdef MOZ_HAVE_SHMIMAGE + if (mShmImage && MOZ_LIKELY(!mIsDestroyed)) { +- mShmImage->Put(mGdkWindow, exposeRegion); ++ mShmImage->Put(mGdkWindow, region); + } + # endif // MOZ_HAVE_SHMIMAGE + #endif // MOZ_X11 + + listener->DidPaintWindow(); + + // Synchronously flush any new dirty areas + #if (MOZ_WIDGET_GTK == 2) +@@ -6173,21 +6173,16 @@ nsWindow::EndRemoteDrawingInRegion(DrawTarget* aDrawTarget, nsIntRegion& aInvali + if (!mGdkWindow || mIsFullyObscured || !mHasMappedToplevel || mIsDestroyed || + !mShmImage) + return; + + if (mThebesSurface) { + aInvalidRegion.AndWith(nsIntRect(nsIntPoint(0, 0), mThebesSurface->GetSize())); + } + +- gint scale = GdkScaleFactor(); +- if (scale != 1) { +- aInvalidRegion.ScaleInverseRoundOut(scale, scale); +- } +- + mShmImage->Put(mGdkWindow, aInvalidRegion); + + # endif // MOZ_HAVE_SHMIMAGE + #endif // MOZ_X11 + } + + // return the gfxASurface for rendering to this widget + gfxASurface* |