firefox/D169197.diff
2023-02-13 09:07:01 +01:00

24 lines
667 B
Diff

diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
--- a/widget/gtk/nsWindow.cpp
+++ b/widget/gtk/nsWindow.cpp
@@ -654,10 +654,18 @@
if (window == this) {
sStoredLeaveNotifyEvent = nullptr;
}
}
+ // We need to detach accessible object here because mContainer is a custom
+ // widget and doesn't call gtk_widget_real_destroy() from destroy handler
+ // as regular widgets.
+ AtkObject* ac = gtk_widget_get_accessible(GTK_WIDGET(mContainer));
+ if (ac) {
+ gtk_accessible_set_widget(GTK_ACCESSIBLE(ac), nullptr);
+ }
+
gtk_widget_destroy(mShell);
mShell = nullptr;
mContainer = nullptr;
MOZ_ASSERT(!mGdkWindow,