diff options
author | Timothy Pearson <[email protected]> | 2013-05-07 00:12:51 -0500 |
---|---|---|
committer | Timothy Pearson <[email protected]> | 2013-05-07 00:12:51 -0500 |
commit | 3421d01bb00aaf52883a4d21eade96e9c663e05d (patch) | |
tree | f294c52c8d1d12774629a2d410ec157504af3f57 /twin | |
parent | 9804217b51b058fed43a060a746f543da044b2a5 (diff) | |
download | tdebase-3421d01bb00aaf52883a4d21eade96e9c663e05d.tar.gz tdebase-3421d01bb00aaf52883a4d21eade96e9c663e05d.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
Diffstat (limited to 'twin')
-rw-r--r-- | twin/main.cpp | 9 | ||||
-rw-r--r-- | twin/workspace.cpp | 8 |
2 files changed, 15 insertions, 2 deletions
diff --git a/twin/main.cpp b/twin/main.cpp index b3e861307..1919fd8e0 100644 --- a/twin/main.cpp +++ b/twin/main.cpp @@ -44,6 +44,7 @@ Options* options; Atoms* atoms; int screen_number = -1; +bool disable_twin_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(tqt_xdisplay()); + } + + if (args->isSet( "disablecompositionmanager" )) { + disable_twin_composition_manager = true; + } if( !owner.claim( args->isSet( "replace" ), true )) { @@ -234,6 +240,7 @@ static TDECmdLineOptions 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 }, TDECmdLineLastOption }; diff --git a/twin/workspace.cpp b/twin/workspace.cpp index cae56b2f9..f55561ac6 100644 --- a/twin/workspace.cpp +++ b/twin/workspace.cpp @@ -59,9 +59,14 @@ TDEProcess* kompmgr = 0; TDESelectionOwner* kompmgr_selection; bool allowKompmgrRestart = TRUE; +extern bool disable_twin_composition_manager; bool supportsCompMgr() { + if (disable_twin_composition_manager) { + return false; + } + int i; bool damageExt = XQueryExtension(tqt_xdisplay(), "DAMAGE", &i, &i, &i); @@ -213,8 +218,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) |