diff options
Diffstat (limited to 'mozilla-1627469.patch')
-rw-r--r-- | mozilla-1627469.patch | 113 |
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. |