summaryrefslogtreecommitdiff
path: root/mozilla-1683578.patch
diff options
context:
space:
mode:
Diffstat (limited to 'mozilla-1683578.patch')
-rw-r--r--mozilla-1683578.patch109
1 files changed, 0 insertions, 109 deletions
diff --git a/mozilla-1683578.patch b/mozilla-1683578.patch
deleted file mode 100644
index 942c114..0000000
--- a/mozilla-1683578.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-diff -up firefox-86.0/widget/gtk/nsWindow.cpp.1683578 firefox-86.0/widget/gtk/nsWindow.cpp
---- firefox-86.0/widget/gtk/nsWindow.cpp.1683578 2021-02-24 10:09:53.471680954 +0100
-+++ firefox-86.0/widget/gtk/nsWindow.cpp 2021-02-24 10:09:53.510681881 +0100
-@@ -1769,6 +1769,9 @@ void nsWindow::NativeMoveResizeWaylandPo
- bool isWidgetVisible =
- (sGtkWidgetIsVisible != nullptr) && sGtkWidgetIsVisible(mShell);
- if (isWidgetVisible) {
-+ LOG(
-+ (" temporary hide popup due to "
-+ "https://gitlab.gnome.org/GNOME/gtk/issues/1986\n"));
- PauseRemoteRenderer();
- gtk_widget_hide(mShell);
- }
-@@ -1823,6 +1826,9 @@ void nsWindow::NativeMoveResizeWaylandPo
- if (isWidgetVisible) {
- // We show the popup with the same configuration so no need to call
- // ConfigureWaylandPopupWindows() before gtk_widget_show().
-+ LOG(
-+ (" show popup due to "
-+ "https://gitlab.gnome.org/GNOME/gtk/issues/1986\n"));
- gtk_widget_show(mShell);
- }
- }
-diff -up firefox-86.0/widget/gtk/WindowSurfaceWayland.cpp.1683578 firefox-86.0/widget/gtk/WindowSurfaceWayland.cpp
---- firefox-86.0/widget/gtk/WindowSurfaceWayland.cpp.1683578 2021-02-22 15:47:05.000000000 +0100
-+++ firefox-86.0/widget/gtk/WindowSurfaceWayland.cpp 2021-02-24 10:12:59.835110678 +0100
-@@ -467,7 +467,7 @@ WindowSurfaceWayland::WindowSurfaceWayla
- mWaylandBuffer(nullptr),
- mWaylandFullscreenDamage(false),
- mFrameCallback(nullptr),
-- mLastCommittedSurface(nullptr),
-+ mLastCommittedSurfaceID(-1),
- mLastCommitTime(0),
- mDrawToWaylandBufferDirectly(true),
- mCanSwitchWaylandBuffer(true),
-@@ -964,7 +964,7 @@ bool WindowSurfaceWayland::FlushPendingC
- (" mDrawToWaylandBufferDirectly = %d\n", mDrawToWaylandBufferDirectly));
- LOGWAYLAND((" mCanSwitchWaylandBuffer = %d\n", mCanSwitchWaylandBuffer));
- LOGWAYLAND((" mFrameCallback = %p\n", mFrameCallback));
-- LOGWAYLAND((" mLastCommittedSurface = %p\n", mLastCommittedSurface));
-+ LOGWAYLAND((" mLastCommittedSurfaceID = %d\n", mLastCommittedSurfaceID));
- LOGWAYLAND((" mBufferPendingCommit = %d\n", mBufferPendingCommit));
- LOGWAYLAND((" mBufferCommitAllowed = %d\n", mBufferCommitAllowed));
-
-@@ -990,12 +990,6 @@ bool WindowSurfaceWayland::FlushPendingC
- LOGWAYLAND((" [%p] mWindow->GetWaylandSurface() failed, delay commit.\n",
- (void*)this));
-
-- // Target window is not created yet - delay the commit. This can happen only
-- // when the window is newly created and there's no active
-- // frame callback pending.
-- MOZ_ASSERT(!mFrameCallback || waylandSurface != mLastCommittedSurface,
-- "Missing wayland surface at frame callback!");
--
- if (!mSurfaceReadyTimerID) {
- mSurfaceReadyTimerID = g_timeout_add(
- EVENT_LOOP_DELAY, &WaylandBufferFlushPendingCommits, this);
-@@ -1016,8 +1010,10 @@ bool WindowSurfaceWayland::FlushPendingC
-
- // We have an active frame callback request so handle it.
- if (mFrameCallback) {
-- if (waylandSurface == mLastCommittedSurface) {
-- LOGWAYLAND((" [%p] wait for frame callback.\n", (void*)this));
-+ int waylandSurfaceID = wl_proxy_get_id((struct wl_proxy*)waylandSurface);
-+ if (waylandSurfaceID == mLastCommittedSurfaceID) {
-+ LOGWAYLAND((" [%p] wait for frame callback ID %d.\n", (void*)this,
-+ waylandSurfaceID));
- // We have an active frame callback pending from our recent surface.
- // It means we should defer the commit to FrameCallbackHandler().
- return true;
-@@ -1026,7 +1022,7 @@ bool WindowSurfaceWayland::FlushPendingC
- // callback is no longer active and we should release it.
- wl_callback_destroy(mFrameCallback);
- mFrameCallback = nullptr;
-- mLastCommittedSurface = nullptr;
-+ mLastCommittedSurfaceID = -1;
- }
-
- if (mWaylandFullscreenDamage) {
-@@ -1055,7 +1051,7 @@ bool WindowSurfaceWayland::FlushPendingC
- wl_callback_add_listener(mFrameCallback, &frame_listener, this);
-
- mWaylandBuffer->Attach(waylandSurface);
-- mLastCommittedSurface = waylandSurface;
-+ mLastCommittedSurfaceID = wl_proxy_get_id((struct wl_proxy*)waylandSurface);
- mLastCommitTime = g_get_monotonic_time() / 1000;
-
- // There's no pending commit, all changes are sent to compositor.
-@@ -1097,7 +1093,7 @@ void WindowSurfaceWayland::Commit(const
- void WindowSurfaceWayland::FrameCallbackHandler() {
- MOZ_ASSERT(mFrameCallback != nullptr,
- "FrameCallbackHandler() called without valid frame callback!");
-- MOZ_ASSERT(mLastCommittedSurface != nullptr,
-+ MOZ_ASSERT(mLastCommittedSurfaceID != -1,
- "FrameCallbackHandler() called without valid wl_surface!");
- LOGWAYLAND(
- ("WindowSurfaceWayland::FrameCallbackHandler [%p]\n", (void*)this));
-diff -up firefox-86.0/widget/gtk/WindowSurfaceWayland.h.1683578 firefox-86.0/widget/gtk/WindowSurfaceWayland.h
---- firefox-86.0/widget/gtk/WindowSurfaceWayland.h.1683578 2021-02-22 15:47:05.000000000 +0100
-+++ firefox-86.0/widget/gtk/WindowSurfaceWayland.h 2021-02-24 10:09:53.509681857 +0100
-@@ -215,7 +215,7 @@ class WindowSurfaceWayland : public Wind
- // Any next commit to wayland compositor will happen when frame callback
- // comes from wayland compositor back as it's the best time to do the commit.
- wl_callback* mFrameCallback;
-- wl_surface* mLastCommittedSurface;
-+ int mLastCommittedSurfaceID;
-
- // Cached drawings. If we can't get WaylandBuffer (wl_buffer) at
- // WindowSurfaceWayland::Lock() we direct gecko rendering to
bgstack15