diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2013-05-07 00:12:51 -0500 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2013-05-09 19:56:11 +0200 |
commit | 35fbe8f408dde2fa0efe2aba3f8ecc78565e6696 (patch) | |
tree | a12034bc9629cc55176732580139237c7afdf43c /kwin | |
parent | 807a5445cad7b0de7c572c58cf7c86f265b6de66 (diff) | |
download | tdebase-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.cpp | 9 | ||||
-rw-r--r-- | kwin/workspace.cpp | 8 |
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) |