Resolves: rhbz#747356 let Qt call XInitThreads

f41
Caolán McNamara 13 years ago
parent 6e9cf8395f
commit 1eafa95494

@ -0,0 +1,38 @@
From 6163c62a52794725188faf82ee12852f4b2cd023 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lubo=C5=A1=20Lu=C5=88=C3=A1k?= <l.lunak@suse.cz>
Date: Thu, 20 Oct 2011 16:41:50 +0200
Subject: [PATCH] let Qt call XInitThreads(), so that it knows it's been
called (fdo#40298)
Otherwise QPixmap complains when used outside of the main Qt thread
and resets itself to null pixmap, eventually leading to crashes.
---
vcl/unx/kde4/main.cxx | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/vcl/unx/kde4/main.cxx b/vcl/unx/kde4/main.cxx
index 9e0a361..482a212 100644
--- a/vcl/unx/kde4/main.cxx
+++ b/vcl/unx/kde4/main.cxx
@@ -56,7 +56,18 @@ extern "C" {
established, so protect X against itself
*/
if( ! ( pNoXInitThreads && *pNoXInitThreads ) )
+ {
+#if QT_VERSION >= 0x040800
+ // let Qt call XInitThreads(), so that also Qt knows it's been used
+ // (otherwise QPixmap may warn about threads not being initialized)
+ QApplication::setAttribute( Qt::AA_X11InitThreads );
+#else
XInitThreads();
+ // just in case somebody builds with old version and then upgrades Qt,
+ // otherwise this is a no-op
+ QApplication::setAttribute( static_cast< ApplicationAttribute >( 10 ));
+#endif
+ }
#if QT_VERSION < 0x050000
// Qt 4.x support needs >= 4.1.0
--
1.7.6.4

@ -27,7 +27,7 @@ Summary: Free Software Productivity Suite
Name: libreoffice Name: libreoffice
Epoch: 1 Epoch: 1
Version: 3.4.3.2 Version: 3.4.3.2
Release: 14%{?dist} Release: 15%{?dist}
License: LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and (CDDL or GPLv2) and Public Domain License: LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and (CDDL or GPLv2) and Public Domain
Group: Applications/Productivity Group: Applications/Productivity
URL: http://www.documentfoundation.org/develop URL: http://www.documentfoundation.org/develop
@ -128,6 +128,7 @@ Patch32: fdo40856.bn.discard.patch
Patch33: 0001-Fix-for-fdo-35513-avoid-crash-while-processing-incor.patch Patch33: 0001-Fix-for-fdo-35513-avoid-crash-while-processing-incor.patch
Patch34: libreoffice34-gcc461.patch Patch34: libreoffice34-gcc461.patch
Patch35: 0001-make-sure-we-stay-in-array-bounds.patch Patch35: 0001-make-sure-we-stay-in-array-bounds.patch
Patch36: 0001-let-Qt-call-XInitThreads-so-that-it-knows-it-s-been-.patch
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} %{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
%define instdir %{_libdir} %define instdir %{_libdir}
@ -805,6 +806,7 @@ mv -f redhat.soc extras/source/palettes/standard.soc
%patch33 -p1 -b .fdo35513-avoid-crash-while-processing-incor.patch %patch33 -p1 -b .fdo35513-avoid-crash-while-processing-incor.patch
%patch34 -p1 -b .libreoffice34-gcc461.patch %patch34 -p1 -b .libreoffice34-gcc461.patch
%patch35 -p1 -b .make-sure-we-stay-in-array-bounds.patch %patch35 -p1 -b .make-sure-we-stay-in-array-bounds.patch
%patch36 -p1 -b .let-Qt-call-XInitThreads-so-that-it-knows-it-s-been-.patch
# these are horribly incomplete--empty translations and copied english # these are horribly incomplete--empty translations and copied english
# strings with spattering of translated strings # strings with spattering of translated strings
@ -2106,6 +2108,9 @@ update-desktop-database %{_datadir}/applications &> /dev/null || :
%{basisinstdir}/program/kde-open-url %{basisinstdir}/program/kde-open-url
%changelog %changelog
* Fri Oct 21 2011 Caolán McNamara <caolanm@redhat.com> - 3.4.3.2-15
- Resolves: rhbz#747356 let Qt call XInitThreads
* Wed Oct 19 2011 Caolán McNamara <caolanm@redhat.com> - 3.4.3.2-14 * Wed Oct 19 2011 Caolán McNamara <caolanm@redhat.com> - 3.4.3.2-14
- Related: rhbz#743750 addXineramaScreenUnique issue - Related: rhbz#743750 addXineramaScreenUnique issue

Loading…
Cancel
Save