summaryrefslogtreecommitdiff
path: root/mozilla-1627469.patch
diff options
context:
space:
mode:
Diffstat (limited to 'mozilla-1627469.patch')
-rw-r--r--mozilla-1627469.patch113
1 files changed, 0 insertions, 113 deletions
diff --git a/mozilla-1627469.patch b/mozilla-1627469.patch
deleted file mode 100644
index 3e53ec5..0000000
--- a/mozilla-1627469.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-diff -up firefox-74.0.1/widget/gtk/WindowSurfaceWayland.cpp.mozilla-1627469 firefox-74.0.1/widget/gtk/WindowSurfaceWayland.cpp
---- firefox-74.0.1/widget/gtk/WindowSurfaceWayland.cpp.mozilla-1627469 2020-04-06 15:07:16.772431937 +0200
-+++ firefox-74.0.1/widget/gtk/WindowSurfaceWayland.cpp 2020-04-06 15:09:57.037320477 +0200
-@@ -647,13 +647,14 @@ WindowBackBuffer* WindowSurfaceWayland::
- LOGWAYLAND(
- ("WindowSurfaceWayland::NewWaylandBuffer [%p] Requested buffer [%d "
- "x %d] DMABuf %d\n",
-- (void*)this, mWidgetRect.width, mWidgetRect.height, aUseDMABufBackend));
-+ (void*)this, mWLBufferRect.width, mWLBufferRect.height,
-+ aUseDMABufBackend));
-
- mWaylandBuffer = WaylandBufferFindAvailable(
-- mWidgetRect.width, mWidgetRect.height, aUseDMABufBackend);
-+ mWLBufferRect.width, mWLBufferRect.height, aUseDMABufBackend);
- if (!mWaylandBuffer) {
-- mWaylandBuffer = CreateWaylandBuffer(mWidgetRect.width, mWidgetRect.height,
-- aUseDMABufBackend);
-+ mWaylandBuffer = CreateWaylandBuffer(
-+ mWLBufferRect.width, mWLBufferRect.height, aUseDMABufBackend);
- }
-
- return mWaylandBuffer;
-@@ -663,7 +664,7 @@ WindowBackBuffer* WindowSurfaceWayland::
- LOGWAYLAND(
- ("WindowSurfaceWayland::GetWaylandBufferRecent [%p] Requested buffer [%d "
- "x %d]\n",
-- (void*)this, mWidgetRect.width, mWidgetRect.height));
-+ (void*)this, mWLBufferRect.width, mWLBufferRect.height));
-
- // There's no buffer created yet, create a new one for partial screen updates.
- if (!mWaylandBuffer) {
-@@ -675,9 +676,10 @@ WindowBackBuffer* WindowSurfaceWayland::
- return nullptr;
- }
-
-- if (mWaylandBuffer->IsMatchingSize(mWidgetRect.width, mWidgetRect.height)) {
-- LOGWAYLAND((" Size is ok, use the buffer [%d x %d]\n", mWidgetRect.width,
-- mWidgetRect.height));
-+ if (mWaylandBuffer->IsMatchingSize(mWLBufferRect.width,
-+ mWLBufferRect.height)) {
-+ LOGWAYLAND((" Size is ok, use the buffer [%d x %d]\n",
-+ mWLBufferRect.width, mWLBufferRect.height));
- return mWaylandBuffer;
- }
-
-@@ -692,7 +694,7 @@ WindowBackBuffer* WindowSurfaceWayland::
- LOGWAYLAND(
- ("WindowSurfaceWayland::GetWaylandBufferWithSwitch [%p] Requested buffer "
- "[%d x %d]\n",
-- (void*)this, mWidgetRect.width, mWidgetRect.height));
-+ (void*)this, mWLBufferRect.width, mWLBufferRect.height));
-
- // There's no buffer created yet or actual buffer is attached, get a new one.
- // Use DMABuf for fullscreen updates only.
-@@ -701,20 +703,21 @@ WindowBackBuffer* WindowSurfaceWayland::
- }
-
- // Reuse existing buffer
-- LOGWAYLAND((" Reuse buffer with resize [%d x %d]\n", mWidgetRect.width,
-- mWidgetRect.height));
-+ LOGWAYLAND((" Reuse buffer with resize [%d x %d]\n", mWLBufferRect.width,
-+ mWLBufferRect.height));
-
- // OOM here, just return null to skip this frame.
-- if (!mWaylandBuffer->Resize(mWidgetRect.width, mWidgetRect.height)) {
-+ if (!mWaylandBuffer->Resize(mWLBufferRect.width, mWLBufferRect.height)) {
- return nullptr;
- }
- return mWaylandBuffer;
- }
-
- already_AddRefed<gfx::DrawTarget> WindowSurfaceWayland::LockWaylandBuffer() {
-- // Allocated wayland buffer must match widget size, otherwise wayland
-- // compositor is confused and may produce various rendering artifacts.
-- mWidgetRect = mWindow->GetMozContainerSize();
-+ // Allocated wayland buffer can't be bigger than mozilla widget size.
-+ LayoutDeviceIntRegion region;
-+ region.And(mLockedScreenRect, mWindow->GetMozContainerSize());
-+ mWLBufferRect = LayoutDeviceIntRect(region.GetBounds());
-
- // mCanSwitchWaylandBuffer set means we're getting buffer for fullscreen
- // update. We can use DMABuf and we can get a new buffer for drawing.
-@@ -882,8 +885,8 @@ already_AddRefed<gfx::DrawTarget> Window
- LayoutDeviceIntRect size = mWindow->GetMozContainerSize();
-
- // We can draw directly only when widget has the same size as wl_buffer
-- mDrawToWaylandBufferDirectly = (size.width == mLockedScreenRect.width &&
-- size.height == mLockedScreenRect.height);
-+ mDrawToWaylandBufferDirectly = (size.width >= mLockedScreenRect.width &&
-+ size.height >= mLockedScreenRect.height);
-
- // We can draw directly only when we redraw significant part of the window
- // to avoid flickering.
-diff -up firefox-74.0.1/widget/gtk/WindowSurfaceWayland.h.mozilla-1627469 firefox-74.0.1/widget/gtk/WindowSurfaceWayland.h
---- firefox-74.0.1/widget/gtk/WindowSurfaceWayland.h.mozilla-1627469 2020-04-06 15:07:16.773431931 +0200
-+++ firefox-74.0.1/widget/gtk/WindowSurfaceWayland.h 2020-04-06 15:07:16.775431919 +0200
-@@ -264,11 +264,11 @@ class WindowSurfaceWayland : public Wind
- // mLockedScreenRect is window size when our wayland buffer was allocated.
- LayoutDeviceIntRect mLockedScreenRect;
-
-- // WidgetRect is an actual size of mozcontainer widget. It can be
-- // different than mLockedScreenRect during resize when mBounds are updated
-- // immediately but actual GtkWidget size is updated asynchronously
-- // (see Bug 1489463).
-- LayoutDeviceIntRect mWidgetRect;
-+ // mWLBufferRect is an intersection of mozcontainer widgetsize and
-+ // mLockedScreenRect size. It can be different than mLockedScreenRect
-+ // during resize when mBounds are updated immediately but actual
-+ // GtkWidget size is updated asynchronously (see Bug 1489463).
-+ LayoutDeviceIntRect mWLBufferRect;
- nsWaylandDisplay* mWaylandDisplay;
-
- // Actual buffer (backed by wl_buffer) where all drawings go into.
bgstack15