summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Horak <jhorak@redhat.com>2016-02-04 18:07:10 +0100
committerJan Horak <jhorak@redhat.com>2016-02-04 18:07:10 +0100
commit49904cf08b23bcec8e67cf99b14d5975f5b9e3e9 (patch)
tree7d2d2db6f55e120a001ad91332a15ff0f6c3ff8a
parentDisable ION on Rawhide (mozbz#1245783) (diff)
downloadlibrewolf-fedora-ff-49904cf08b23bcec8e67cf99b14d5975f5b9e3e9.tar.gz
librewolf-fedora-ff-49904cf08b23bcec8e67cf99b14d5975f5b9e3e9.tar.bz2
librewolf-fedora-ff-49904cf08b23bcec8e67cf99b14d5975f5b9e3e9.zip
Added workaround for crash when closing application chooser
-rw-r--r--firefox.spec2
-rw-r--r--rhbz-1291190-appchooser-crash.patch18
2 files changed, 20 insertions, 0 deletions
diff --git a/firefox.spec b/firefox.spec
index e34a4e5..e5dac24 100644
--- a/firefox.spec
+++ b/firefox.spec
@@ -115,6 +115,7 @@ Patch219: rhbz-1173156.patch
Patch220: rhbz-1014858.patch
Patch221: firefox-fedora-ua.patch
Patch222: firefox-gtk3-20.patch
+Patch223: rhbz-1291190-appchooser-crash.patch
# Upstream patches
Patch300: mozilla-1234026.patch
@@ -265,6 +266,7 @@ cd %{tarballdir}
%if 0%{?fedora} > 23
%patch222 -p1 -b .gtk3-20
%endif
+%patch223 -p1 -b .appchooser-crash
%patch300 -p1 -b .1234026
diff --git a/rhbz-1291190-appchooser-crash.patch b/rhbz-1291190-appchooser-crash.patch
new file mode 100644
index 0000000..7a432d0
--- /dev/null
+++ b/rhbz-1291190-appchooser-crash.patch
@@ -0,0 +1,18 @@
+diff -up firefox-44.0/widget/gtk/nsApplicationChooser.cpp.appchooser-crash firefox-44.0/widget/gtk/nsApplicationChooser.cpp
+--- firefox-44.0/widget/gtk/nsApplicationChooser.cpp.appchooser-crash 2016-01-24 00:23:50.000000000 +0100
++++ firefox-44.0/widget/gtk/nsApplicationChooser.cpp 2016-02-03 17:17:50.891127905 +0100
+@@ -112,7 +112,13 @@ void nsApplicationChooser::Done(GtkWidge
+
+ // A "response" signal won't be sent again but "destroy" will be.
+ g_signal_handlers_disconnect_by_func(chooser, FuncToGpointer(OnDestroy), this);
+- gtk_widget_destroy(chooser);
++ // GTK 3.18 has a problem with destroying dialog at this stage for some reason.
++ // We're going to hide the dialog in this case as a workaround.
++ if (gtk_major_version == 3 && gtk_minor_version == 18) {
++ gtk_widget_hide(chooser);
++ } else {
++ gtk_widget_destroy(chooser);
++ }
+
+ if (mCallback) {
+ mCallback->Done(localHandler);
bgstack15