Added fix for mozbz#1097592 - Firefox freeze in Gtk3
This commit is contained in:
parent
7a6142b695
commit
02e8ef68f3
@ -113,7 +113,7 @@
|
||||
Summary: Mozilla Firefox Web browser
|
||||
Name: firefox
|
||||
Version: 34.0
|
||||
Release: 6%{?pre_tag}%{?dist}
|
||||
Release: 7%{?pre_tag}%{?dist}
|
||||
URL: http://www.mozilla.org/projects/firefox/
|
||||
License: MPLv1.1 or GPLv2+ or LGPLv2+
|
||||
Group: Applications/Internet
|
||||
@ -157,6 +157,7 @@ Patch403: mozilla-1051209.patch
|
||||
Patch404: mozilla-1101582.patch
|
||||
Patch405: mozilla-1073117-check.patch
|
||||
Patch406: mozilla-1073117-color.patch
|
||||
Patch407: mozilla-1097592.patch
|
||||
|
||||
%if %{official_branding}
|
||||
# Required by Mozilla Corporation
|
||||
@ -310,6 +311,7 @@ cd %{tarballdir}
|
||||
%patch404 -p1 -b .1101582
|
||||
%patch405 -p1 -b .1073117-check
|
||||
%patch406 -p1 -b .1073117-color
|
||||
%patch407 -p1 -b .1097592
|
||||
%endif
|
||||
|
||||
%if %{official_branding}
|
||||
@ -773,6 +775,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
||||
#---------------------------------------------------------------------
|
||||
|
||||
%changelog
|
||||
* Fri Dec 12 2014 Martin Stransky <stransky@redhat.com> - 34.0-7
|
||||
- Added fix for mozbz#1097592 - Firefox freeze in Gtk3
|
||||
|
||||
* Thu Dec 11 2014 Martin Stransky <stransky@redhat.com> - 34.0-6
|
||||
- Disabled Gtk3 on Fedora 21 and earlier (rhbz#1172926)
|
||||
|
||||
|
56
mozilla-1097592.patch
Normal file
56
mozilla-1097592.patch
Normal file
@ -0,0 +1,56 @@
|
||||
# HG changeset patch
|
||||
# Parent 64206634959a2e84eefec40d1da0122c7a63bc20
|
||||
# User Martin Stransky <stransky@redhat.com>
|
||||
Bug 1097592 - Don't use PR_FindFunctionSymbolAndLibrary to avoid app freeze, r=?karlt
|
||||
|
||||
diff --git a/widget/gtk/mozgtk/mozgtk.c b/widget/gtk/mozgtk/mozgtk.c
|
||||
--- a/widget/gtk/mozgtk/mozgtk.c
|
||||
+++ b/widget/gtk/mozgtk/mozgtk.c
|
||||
@@ -116,16 +116,17 @@ STUB(gdk_x11_display_get_user_time)
|
||||
STUB(gdk_x11_display_get_xdisplay)
|
||||
STUB(gdk_x11_get_default_root_xwindow)
|
||||
STUB(gdk_x11_get_default_xdisplay)
|
||||
STUB(gdk_x11_get_xatom_by_name)
|
||||
STUB(gdk_x11_lookup_xdisplay)
|
||||
STUB(gdk_x11_screen_get_xscreen)
|
||||
STUB(gdk_x11_visual_get_xvisual)
|
||||
STUB(gdk_x11_window_lookup_for_display)
|
||||
+STUB(gdk_x11_window_set_user_time)
|
||||
STUB(gdk_x11_xatom_to_atom)
|
||||
STUB(gtk_accel_label_new)
|
||||
STUB(gtk_alignment_get_type)
|
||||
STUB(gtk_alignment_new)
|
||||
STUB(gtk_alignment_set_padding)
|
||||
STUB(gtk_arrow_get_type)
|
||||
STUB(gtk_arrow_new)
|
||||
STUB(gtk_bindings_activate)
|
||||
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
|
||||
--- a/widget/gtk/nsWindow.cpp
|
||||
+++ b/widget/gtk/nsWindow.cpp
|
||||
@@ -1290,24 +1290,18 @@ SetUserTimeAndStartupIDForActivatedWindo
|
||||
sn_launchee_context_new(snd, gdk_screen_get_number(screen),
|
||||
desktopStartupID.get());
|
||||
if (!ctx) {
|
||||
sn_display_unref(snd);
|
||||
return;
|
||||
}
|
||||
|
||||
if (sn_launchee_context_get_id_has_timestamp(ctx)) {
|
||||
- PRLibrary* gtkLibrary;
|
||||
- SetUserTimeFunc setUserTimeFunc = (SetUserTimeFunc)
|
||||
- PR_FindFunctionSymbolAndLibrary("gdk_x11_window_set_user_time", >kLibrary);
|
||||
- if (setUserTimeFunc) {
|
||||
- setUserTimeFunc(gdkWindow, sn_launchee_context_get_timestamp(ctx));
|
||||
- PR_UnloadLibrary(gtkLibrary);
|
||||
- }
|
||||
- }
|
||||
+ gdk_x11_window_set_user_time(gdkWindow, sn_launchee_context_get_timestamp(ctx));
|
||||
+ }
|
||||
|
||||
sn_launchee_context_setup_window(ctx, gdk_x11_window_get_xid(gdkWindow));
|
||||
sn_launchee_context_complete(ctx);
|
||||
|
||||
sn_launchee_context_unref(ctx);
|
||||
sn_display_unref(snd);
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user