summaryrefslogtreecommitdiffstats
path: root/kwin
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-05-07 00:12:51 -0500
committerSlávek Banko <slavek.banko@axis.cz>2013-05-09 19:56:11 +0200
commit35fbe8f408dde2fa0efe2aba3f8ecc78565e6696 (patch)
treea12034bc9629cc55176732580139237c7afdf43c /kwin
parent807a5445cad7b0de7c572c58cf7c86f265b6de66 (diff)
downloadtdebase-35fbe8f408dde2fa0efe2aba3f8ecc78565e6696.tar.gz
tdebase-35fbe8f408dde2fa0efe2aba3f8ecc78565e6696.zip
Fix TDM hang in certain circumstances when themed greeter is deleted
This resolves Bug 1453 Resolve themed greeter drawing inconsistencies between composited and non-composited mode (cherry picked from commit 3421d01bb00aaf52883a4d21eade96e9c663e05d)
Diffstat (limited to 'kwin')
-rw-r--r--kwin/main.cpp9
-rw-r--r--kwin/workspace.cpp8
2 files changed, 15 insertions, 2 deletions
diff --git a/kwin/main.cpp b/kwin/main.cpp
index dcc4a7438..3c1dd171a 100644
--- a/kwin/main.cpp
+++ b/kwin/main.cpp
@@ -44,6 +44,7 @@ Options* options;
Atoms* atoms;
int screen_number = -1;
+bool disable_kwin_composition_manager = false;
static bool initting = FALSE;
@@ -95,8 +96,13 @@ Application::Application( )
config()->reparseConfiguration();
}
- if (screen_number == -1)
+ if (screen_number == -1) {
screen_number = DefaultScreen(qt_xdisplay());
+ }
+
+ if (args->isSet( "disablecompositionmanager" )) {
+ disable_kwin_composition_manager = true;
+ }
if( !owner.claim( args->isSet( "replace" ), true ))
{
@@ -234,6 +240,7 @@ static KCmdLineOptions args[] =
{
{ "lock", I18N_NOOP("Disable configuration options"), 0 },
{ "replace", I18N_NOOP("Replace already-running ICCCM2.0-compliant window manager"), 0 },
+ { "disablecompositionmanager", I18N_NOOP("Do not start composition manager"), 0 },
KCmdLineLastOption
};
diff --git a/kwin/workspace.cpp b/kwin/workspace.cpp
index d358869b8..957689364 100644
--- a/kwin/workspace.cpp
+++ b/kwin/workspace.cpp
@@ -58,9 +58,14 @@ KProcess* kompmgr = 0;
KSelectionOwner* kompmgr_selection;
bool allowKompmgrRestart = TRUE;
+extern bool disable_kwin_composition_manager;
bool supportsCompMgr()
{
+ if (disable_kwin_composition_manager) {
+ return false;
+ }
+
int i;
bool damageExt = XQueryExtension(qt_xdisplay(), "DAMAGE", &i, &i, &i);
@@ -212,8 +217,9 @@ Workspace::Workspace( bool restore )
connect( kapp->desktop(), TQT_SIGNAL( resized( int )), TQT_SLOT( desktopResized()));
#endif
- if (!supportsCompMgr())
+ if (!supportsCompMgr()) {
options->useTranslucency = false;
+ }
// start kompmgr - i wanted to put this into main.cpp, but that would prevent dcop support, as long as Application was no dcop_object
if (options->useTranslucency)