[Libreoffice-commits] .: Branch 'libreoffice-3-4' - vcl/unx

Tomáš Chvátal tchvatal at kemper.freedesktop.org
Fri Oct 21 02:18:00 PDT 2011


 vcl/unx/kde4/main.cxx |   11 +++++++++++
 1 file changed, 11 insertions(+)

New commits:
commit 4c2b93d96689f62c24ebdb2d4e87ac08d51ed53a
Author: Luboš Luňák <l.lunak at suse.cz>
Date:   Thu Oct 20 14:41:50 2011 +0000

    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.
    
    Signed-off-by: Tomáš Chvátal <tchvatal at suse.cz>

diff --git a/vcl/unx/kde4/main.cxx b/vcl/unx/kde4/main.cxx
index 32561d9..4365ad6 100644
--- a/vcl/unx/kde4/main.cxx
+++ b/vcl/unx/kde4/main.cxx
@@ -54,7 +54,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< Qt::ApplicationAttribute >( 10 ));
+#endif
+        }
         
 #if QT_VERSION < 0x050000
         // Qt 4.x support needs >= 4.1.0


More information about the Libreoffice-commits mailing list