From 3421d01bb00aaf52883a4d21eade96e9c663e05d Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Tue, 7 May 2013 00:12:51 -0500 Subject: 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 --- tdm/kfrontend/kgapp.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'tdm/kfrontend/kgapp.cpp') diff --git a/tdm/kfrontend/kgapp.cpp b/tdm/kfrontend/kgapp.cpp index 8a7baeaf3..1a4bdb9ef 100644 --- a/tdm/kfrontend/kgapp.cpp +++ b/tdm/kfrontend/kgapp.cpp @@ -218,6 +218,11 @@ kg_main( const char *argv0 ) #else trinity_desktop_lock_use_sak = false; #endif + if (trinity_desktop_lock_use_sak) { + if (system(KDE_BINDIR "/tsak checkdeps") != 0) { + trinity_desktop_lock_use_sak = false; + } + } if (trinity_desktop_lock_use_sak) { tsak = new TDEProcess; *tsak << TQCString( argv0, strrchr( argv0, '/' ) - argv0 + 2 ) + "tsak"; @@ -273,10 +278,11 @@ kg_main( const char *argv0 ) XSetErrorHandler( (XErrorHandler)0 ); GreeterApp *app; - if ( (argb_visual_available == true) && (!_compositor.isEmpty()) ) { + if ((!_compositor.isEmpty()) && ( argb_visual_available == true )) { app = new GreeterApp(dpyi, Qt::HANDLE( visual ), Qt::HANDLE( colormap )); } else { + argb_visual_available = false; app = new GreeterApp(dpyi); } // End ARGB initialization @@ -359,6 +365,11 @@ kg_main( const char *argv0 ) } twin = new TDEProcess; *twin << TQCString( argv0, strrchr( argv0, '/' ) - argv0 + 2 ) + _windowManager.ascii(); + if (_windowManager == "twin") { + // Special case + // Do not allow twin to start kompmgr... + *twin << "--disablecompositionmanager"; + } twin->start(); has_twin = true; } @@ -492,7 +503,7 @@ kg_main( const char *argv0 ) if (userinfo) { TQString newuid = TQString("%1").arg(userinfo->pw_uid); // kompmgr allows us to change its uid in this manner: - // 1.) Send SIGUSER1 + // 1.) Send SIGUSR1 // 2.) Send the new UID to it on the command line comp->kill(SIGUSR1); comp->writeStdin(newuid.ascii(), newuid.length()); -- cgit v1.2.1