From 02e8ef68f3427369c61ab54f95f54a50db8db930 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Fri, 12 Dec 2014 11:18:14 +0100 Subject: Added fix for mozbz#1097592 - Firefox freeze in Gtk3 --- mozilla-1097592.patch | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 mozilla-1097592.patch (limited to 'mozilla-1097592.patch') diff --git a/mozilla-1097592.patch b/mozilla-1097592.patch new file mode 100644 index 0000000..5e1139a --- /dev/null +++ b/mozilla-1097592.patch @@ -0,0 +1,56 @@ +# HG changeset patch +# Parent 64206634959a2e84eefec40d1da0122c7a63bc20 +# User Martin Stransky +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 + -- cgit