diff options
Diffstat (limited to 'mozilla-1562827.patch')
-rw-r--r-- | mozilla-1562827.patch | 141 |
1 files changed, 0 insertions, 141 deletions
diff --git a/mozilla-1562827.patch b/mozilla-1562827.patch deleted file mode 100644 index 497133c..0000000 --- a/mozilla-1562827.patch +++ /dev/null @@ -1,141 +0,0 @@ -diff -up firefox-69.0/widget/gtk/nsWindow.cpp.mozilla-1562827 firefox-69.0/widget/gtk/nsWindow.cpp ---- firefox-69.0/widget/gtk/nsWindow.cpp.mozilla-1562827 2019-09-02 15:16:15.031528276 +0200 -+++ firefox-69.0/widget/gtk/nsWindow.cpp 2019-09-02 15:16:15.037528254 +0200 -@@ -818,7 +818,6 @@ void nsWindow::SetParent(nsIWidget* aNew - if (mParent) { - mParent->RemoveChild(this); - } -- - mParent = aNewParent; - - GtkWidget* oldContainer = GetMozContainerWidget(); -@@ -830,88 +829,73 @@ void nsWindow::SetParent(nsIWidget* aNew - return; - } - -+ nsWindow* newParent = static_cast<nsWindow*>(aNewParent); -+ GdkWindow* newParentWindow = nullptr; -+ GtkWidget* newContainer = nullptr; - if (aNewParent) { - aNewParent->AddChild(this); -- ReparentNativeWidget(aNewParent); -+ newParentWindow = newParent->mGdkWindow; -+ newContainer = newParent->GetMozContainerWidget(); - } else { - // aNewParent is nullptr, but reparent to a hidden window to avoid - // destroying the GdkWindow and its descendants. - // An invisible container widget is needed to hold descendant - // GtkWidgets. -- GtkWidget* newContainer = EnsureInvisibleContainer(); -- GdkWindow* newParentWindow = gtk_widget_get_window(newContainer); -- ReparentNativeWidgetInternal(aNewParent, newContainer, newParentWindow, -- oldContainer); -- } --} -- --bool nsWindow::WidgetTypeSupportsAcceleration() { return !IsSmallPopup(); } -- --void nsWindow::ReparentNativeWidget(nsIWidget* aNewParent) { -- MOZ_ASSERT(aNewParent, "null widget"); -- NS_ASSERTION(!mIsDestroyed, ""); -- NS_ASSERTION(!static_cast<nsWindow*>(aNewParent)->mIsDestroyed, ""); -- -- GtkWidget* oldContainer = GetMozContainerWidget(); -- if (!oldContainer) { -- // The GdkWindows have been destroyed so there is nothing else to -- // reparent. -- MOZ_ASSERT(gdk_window_is_destroyed(mGdkWindow), -- "live GdkWindow with no widget"); -- return; -+ newContainer = EnsureInvisibleContainer(); -+ newParentWindow = gtk_widget_get_window(newContainer); - } -- MOZ_ASSERT(!gdk_window_is_destroyed(mGdkWindow), -- "destroyed GdkWindow with widget"); - -- auto* newParent = static_cast<nsWindow*>(aNewParent); -- GdkWindow* newParentWindow = newParent->mGdkWindow; -- GtkWidget* newContainer = newParent->GetMozContainerWidget(); -- GtkWindow* shell = GTK_WINDOW(mShell); -- -- if (shell && gtk_window_get_transient_for(shell)) { -- GtkWindow* topLevelParent = -- GTK_WINDOW(gtk_widget_get_toplevel(newContainer)); -- gtk_window_set_transient_for(shell, topLevelParent); -- } -- -- ReparentNativeWidgetInternal(aNewParent, newContainer, newParentWindow, -- oldContainer); --} -- --void nsWindow::ReparentNativeWidgetInternal(nsIWidget* aNewParent, -- GtkWidget* aNewContainer, -- GdkWindow* aNewParentWindow, -- GtkWidget* aOldContainer) { -- if (!aNewContainer) { -+ if (!newContainer) { - // The new parent GdkWindow has been destroyed. -- MOZ_ASSERT(!aNewParentWindow || gdk_window_is_destroyed(aNewParentWindow), -+ MOZ_ASSERT(!newParentWindow || gdk_window_is_destroyed(newParentWindow), - "live GdkWindow with no widget"); - Destroy(); - } else { -- if (aNewContainer != aOldContainer) { -- MOZ_ASSERT(!gdk_window_is_destroyed(aNewParentWindow), -+ if (newContainer != oldContainer) { -+ MOZ_ASSERT(!gdk_window_is_destroyed(newParentWindow), - "destroyed GdkWindow with widget"); -- SetWidgetForHierarchy(mGdkWindow, aOldContainer, aNewContainer); -+ SetWidgetForHierarchy(mGdkWindow, oldContainer, newContainer); - -- if (aOldContainer == gInvisibleContainer) { -+ if (oldContainer == gInvisibleContainer) { - CheckDestroyInvisibleContainer(); - } - } - -- if (!mIsTopLevel) { -- gdk_window_reparent(mGdkWindow, aNewParentWindow, -- DevicePixelsToGdkCoordRoundDown(mBounds.x), -- DevicePixelsToGdkCoordRoundDown(mBounds.y)); -- } -+ gdk_window_reparent(mGdkWindow, newParentWindow, -+ DevicePixelsToGdkCoordRoundDown(mBounds.x), -+ DevicePixelsToGdkCoordRoundDown(mBounds.y)); -+ mToplevelParentWindow = GTK_WINDOW(gtk_widget_get_toplevel(newContainer)); - } - -- auto* newParent = static_cast<nsWindow*>(aNewParent); - bool parentHasMappedToplevel = newParent && newParent->mHasMappedToplevel; - if (mHasMappedToplevel != parentHasMappedToplevel) { - SetHasMappedToplevel(parentHasMappedToplevel); - } - } - -+bool nsWindow::WidgetTypeSupportsAcceleration() { return !IsSmallPopup(); } -+ -+void nsWindow::ReparentNativeWidget(nsIWidget* aNewParent) { -+ MOZ_ASSERT(aNewParent, "null widget"); -+ MOZ_ASSERT(!mIsDestroyed, ""); -+ MOZ_ASSERT(!static_cast<nsWindow*>(aNewParent)->mIsDestroyed, ""); -+ MOZ_ASSERT(!gdk_window_is_destroyed(mGdkWindow), -+ "destroyed GdkWindow with widget"); -+ -+ MOZ_ASSERT( -+ !mParent, -+ "nsWindow::ReparentNativeWidget() works on toplevel windows only."); -+ -+ auto* newParent = static_cast<nsWindow*>(aNewParent); -+ GtkWindow* newParentWidget = GTK_WINDOW(newParent->GetGtkWidget()); -+ GtkWindow* shell = GTK_WINDOW(mShell); -+ -+ if (shell && gtk_window_get_transient_for(shell)) { -+ gtk_window_set_transient_for(shell, newParentWidget); -+ mToplevelParentWindow = newParentWidget; -+ } -+} -+ - void nsWindow::SetModal(bool aModal) { - LOG(("nsWindow::SetModal [%p] %d\n", (void*)this, aModal)); - if (mIsDestroyed) return; -diff -up firefox-69.0/widget/gtk/nsWindow.h.mozilla-1562827 firefox-69.0/widget/gtk/nsWindow.h |