libreoffice: dep add
This commit is contained in:
-72
@@ -1,72 +0,0 @@
|
|||||||
From 01d128557726134b5da9e9b951e60286eac311a8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Luboš Luňák <l.lunak@collabora.com>
|
|
||||||
Date: Tue, 25 Mar 2014 12:20:16 +0100
|
|
||||||
Subject: [PATCH] prevent KDE/Qt from interfering with the session manager
|
|
||||||
|
|
||||||
I occassionally get lockups in IceProcessMessages() called from QtCore,
|
|
||||||
I'm actually not exactly sure why, as theoretically two connections
|
|
||||||
from one app shouldn't be a problem, but since LO does its own
|
|
||||||
session handling, there's no need to the KDE/Qt code to be involved,
|
|
||||||
so prevent it from connecting to the session manager altogether.
|
|
||||||
|
|
||||||
Change-Id: Iebe20d4cb5403e5fea8bd5d8c1f69b62d1c2907b
|
|
||||||
(cherry picked from commit 71f2aff7a56cef4e133abad3c2e447c76c5ee1fe)
|
|
||||||
---
|
|
||||||
|
|
||||||
diff --git a/vcl/unx/kde4/KDEXLib.cxx b/vcl/unx/kde4/KDEXLib.cxx
|
|
||||||
index 820d39a..e4900a7 100644
|
|
||||||
--- a/vcl/unx/kde4/KDEXLib.cxx
|
|
||||||
+++ b/vcl/unx/kde4/KDEXLib.cxx
|
|
||||||
@@ -166,8 +166,23 @@
|
|
||||||
|
|
||||||
KCmdLineArgs::init( m_nFakeCmdLineArgs, m_pAppCmdLineArgs, kAboutData );
|
|
||||||
|
|
||||||
+ // LO does its own session management, so prevent KDE/Qt from interfering
|
|
||||||
+ // (QApplication::disableSessionManagement(false) wouldn't quite do,
|
|
||||||
+ // since that still actually connects to the session manager, it just
|
|
||||||
+ // won't save the application data on session shutdown).
|
|
||||||
+ char* session_manager = NULL;
|
|
||||||
+ if( getenv( "SESSION_MANAGER" ) != NULL )
|
|
||||||
+ {
|
|
||||||
+ session_manager = strdup( getenv( "SESSION_MANAGER" ));
|
|
||||||
+ unsetenv( "SESSION_MANAGER" );
|
|
||||||
+ }
|
|
||||||
m_pApplication = new VCLKDEApplication();
|
|
||||||
- kapp->disableSessionManagement();
|
|
||||||
+ if( session_manager != NULL )
|
|
||||||
+ {
|
|
||||||
+ setenv( "SESSION_MANAGER", session_manager, 1 );
|
|
||||||
+ free( session_manager );
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
KApplication::setQuitOnLastWindowClosed(false);
|
|
||||||
|
|
||||||
#if KDE_HAVE_GLIB
|
|
||||||
diff --git a/vcl/unx/kde4/VCLKDEApplication.hxx b/vcl/unx/kde4/VCLKDEApplication.hxx
|
|
||||||
index 412ee34..4ce0b2c 100644
|
|
||||||
--- a/vcl/unx/kde4/VCLKDEApplication.hxx
|
|
||||||
+++ b/vcl/unx/kde4/VCLKDEApplication.hxx
|
|
||||||
@@ -21,22 +21,14 @@
|
|
||||||
|
|
||||||
#define Region QtXRegion
|
|
||||||
|
|
||||||
-#include <QSessionManager>
|
|
||||||
-
|
|
||||||
#include <kapplication.h>
|
|
||||||
|
|
||||||
#undef Region
|
|
||||||
|
|
||||||
-/* #i59042# override KApplications method for session management
|
|
||||||
- * since it will interfere badly with our own.
|
|
||||||
- */
|
|
||||||
class VCLKDEApplication : public KApplication
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
VCLKDEApplication();
|
|
||||||
-
|
|
||||||
- virtual void commitData(QSessionManager&) {};
|
|
||||||
-
|
|
||||||
virtual bool x11EventFilter(XEvent* event);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
@@ -74,6 +74,7 @@
|
|||||||
<Dependency>libXt</Dependency>
|
<Dependency>libXt</Dependency>
|
||||||
<Dependency>pango</Dependency>
|
<Dependency>pango</Dependency>
|
||||||
<Dependency>libICE</Dependency>
|
<Dependency>libICE</Dependency>
|
||||||
|
<Dependency>python3</Dependency>
|
||||||
<Dependency>libXext</Dependency>
|
<Dependency>libXext</Dependency>
|
||||||
<Dependency>libxml2</Dependency>
|
<Dependency>libxml2</Dependency>
|
||||||
<Dependency>libxslt</Dependency>
|
<Dependency>libxslt</Dependency>
|
||||||
|
|||||||
Reference in New Issue
Block a user