summaryrefslogtreecommitdiff
path: root/mozilla-1566876-webrtc-ind.patch
diff options
context:
space:
mode:
Diffstat (limited to 'mozilla-1566876-webrtc-ind.patch')
-rw-r--r--mozilla-1566876-webrtc-ind.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/mozilla-1566876-webrtc-ind.patch b/mozilla-1566876-webrtc-ind.patch
new file mode 100644
index 0000000..598f58f
--- /dev/null
+++ b/mozilla-1566876-webrtc-ind.patch
@@ -0,0 +1,36 @@
+diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
+--- a/widget/gtk/nsWindow.cpp
++++ b/widget/gtk/nsWindow.cpp
+@@ -3504,12 +3504,6 @@
+ mBounds = aRect;
+ ConstrainSize(&mBounds.width, &mBounds.height);
+
+- // eWindowType_child is not supported on Wayland. Just switch to toplevel
+- // as a workaround.
+- if (!mIsX11Display && mWindowType == eWindowType_child) {
+- mWindowType = eWindowType_toplevel;
+- }
+-
+ // figure out our parent window
+ GtkWidget* parentMozContainer = nullptr;
+ GtkContainer* parentGtkContainer = nullptr;
+@@ -3543,6 +3537,18 @@
+ topLevelParent = GTK_WINDOW(gtk_widget_get_toplevel(parentMozContainer));
+ }
+
++ if (!mIsX11Display) {
++ if (mWindowType == eWindowType_child) {
++ // eWindowType_child is not supported on Wayland. Just switch to toplevel
++ // as a workaround.
++ mWindowType = eWindowType_toplevel;
++ } else if (mWindowType == eWindowType_popup && !topLevelParent) {
++ // Workaround for Wayland where the popup windows always need to have
++ // parent window. For example webrtc ui is a popup window without parent.
++ mWindowType = eWindowType_toplevel;
++ }
++ }
++
+ // ok, create our windows
+ switch (mWindowType) {
+ case eWindowType_dialog:
+
bgstack15