diff options
Diffstat (limited to 'mozilla-1705048.patch')
-rw-r--r-- | mozilla-1705048.patch | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/mozilla-1705048.patch b/mozilla-1705048.patch deleted file mode 100644 index b45faa2..0000000 --- a/mozilla-1705048.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff -up firefox-89.0/widget/gtk/nsWindow.cpp.1705048 firefox-89.0/widget/gtk/nsWindow.cpp ---- firefox-89.0/widget/gtk/nsWindow.cpp.1705048 2021-06-01 10:12:40.671376199 +0200 -+++ firefox-89.0/widget/gtk/nsWindow.cpp 2021-06-01 10:13:45.134701718 +0200 -@@ -553,6 +553,7 @@ nsWindow::nsWindow() { - mTitlebarBackdropState = false; - - mHasAlphaVisual = false; -+ mIsWaylandPanelWindow = false; - mIsPIPWindow = false; - mAlwaysOnTop = false; - -@@ -3724,7 +3725,7 @@ void nsWindow::OnButtonPressEvent(GdkEve - - LayoutDeviceIntPoint refPoint = - GdkEventCoordsToDevicePixels(aEvent->x, aEvent->y); -- if (mDraggableRegion.Contains(refPoint.x, refPoint.y) && -+ if ((mIsWaylandPanelWindow || mDraggableRegion.Contains(refPoint.x, refPoint.y)) && - domButton == MouseButton::ePrimary && - eventStatus.mContentStatus != nsEventStatus_eConsumeNoDefault) { - mWindowShouldStartDragging = true; -@@ -4636,8 +4637,9 @@ nsresult nsWindow::Create(nsIWidget* aPa - // as a workaround. - mWindowType = eWindowType_toplevel; - } else if (mWindowType == eWindowType_popup && !aNativeParent && !aParent) { -- // Workaround for Wayland where the popup windows always need to have -- // parent window. For example webrtc ui is a popup window without parent. -+ // mIsWaylandPanelWindow is a special toplevel window on Wayland which -+ // emulates X11 popup window without parent. -+ mIsWaylandPanelWindow = true; - mWindowType = eWindowType_toplevel; - } - } -@@ -4664,8 +4666,10 @@ nsresult nsWindow::Create(nsIWidget* aPa - // popup window position. - GtkWindowType type = GTK_WINDOW_TOPLEVEL; - if (mWindowType == eWindowType_popup) { -- type = (mIsX11Display && aInitData->mNoAutoHide) ? GTK_WINDOW_TOPLEVEL -- : GTK_WINDOW_POPUP; -+ type = GTK_WINDOW_POPUP; -+ if (GdkIsX11Display() && aInitData->mNoAutoHide) { -+ type = GTK_WINDOW_TOPLEVEL; -+ } - } - mShell = gtk_window_new(type); - -@@ -4912,6 +4916,10 @@ nsresult nsWindow::Create(nsIWidget* aPa - } - #endif - -+ if (mIsWaylandPanelWindow) { -+ gtk_window_set_decorated(GTK_WINDOW(mShell), false); -+ } -+ - if (mWindowType == eWindowType_popup) { - // gdk does not automatically set the cursor for "temporary" - // windows, which are what gtk uses for popups. -diff -up firefox-89.0/widget/gtk/nsWindow.h.1705048 firefox-89.0/widget/gtk/nsWindow.h ---- firefox-89.0/widget/gtk/nsWindow.h.1705048 2021-06-01 10:12:40.671376199 +0200 -+++ firefox-89.0/widget/gtk/nsWindow.h 2021-06-01 10:12:40.673376240 +0200 -@@ -590,6 +590,10 @@ class nsWindow final : public nsBaseWidg - LayoutDeviceIntRegion mDraggableRegion; - // It's PictureInPicture window. - bool mIsPIPWindow; -+ // It's undecorated popup utility window, without resizers/titlebar, -+ // movable by mouse. Used on Wayland as a workaround for popups without -+ // parent (for instance WebRTC sharing indicator). -+ bool mIsWaylandPanelWindow; - bool mAlwaysOnTop; - - #ifdef ACCESSIBILITY |