summaryrefslogtreecommitdiffstats
path: root/twin
diff options
context:
space:
mode:
authorTimothy Pearson <[email protected]>2013-05-07 00:12:51 -0500
committerTimothy Pearson <[email protected]>2013-05-07 00:12:51 -0500
commit3421d01bb00aaf52883a4d21eade96e9c663e05d (patch)
treef294c52c8d1d12774629a2d410ec157504af3f57 /twin
parent9804217b51b058fed43a060a746f543da044b2a5 (diff)
downloadtdebase-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.cpp9
-rw-r--r--twin/workspace.cpp8
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)