From c14b4dc18f5ce1a96f422110fead752b854b52ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lubo=C5=A1=20Lu=C5=88=C3=A1k?= Date: Tue, 22 Apr 2008 15:33:40 +0000 Subject: [PATCH] For opening URLs, try to use the kfmclient from the session KDE version. svn path=/trunk/KDE/kdebase/apps/; revision=799859 --- konqueror/client/kfmclient.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/konqueror/client/kfmclient.cpp b/konqueror/client/kfmclient.cpp index db43fa95df..e588be4ab3 100644 --- a/konqueror/client/kfmclient.cpp +++ b/konqueror/client/kfmclient.cpp @@ -109,6 +109,32 @@ extern "C" KDE_EXPORT int kdemain( int argc, char **argv ) return 0; } + // Use kfmclient from the session KDE version + if(( args->arg( 0 ) == "openURL" || args->arg( 0 ) == "newTab" ) + && getenv( "KDE_FULL_SESSION" ) != NULL ) + { + int version = KDE_VERSION_MAJOR; + if( getenv( "KDE_SESSION_VERSION" ) == NULL ) // this is KDE3 + version = 3; + else + version = atoi( getenv( "KDE_SESSION_VERSION" )); + if( version != 0 && version != KDE_VERSION_MAJOR ) + { + kDebug( 1202 ) << "Forwarding to kfmclient from KDE version " << version; + char wrapper[ 10 ]; + sprintf( wrapper, "kde%d", version ); + char** newargv = new char*[ argc + 2 ]; + newargv[ 0 ] = wrapper; + for( int i = 0; + i < argc; + ++i ) + newargv[ i + 1 ] = argv[ i ]; + newargv[ argc + 1 ] = NULL; + execvp( wrapper, newargv ); + // just continue if failed + } + } + // ClientApp internally uses KConfig and hence needs a valid KComponentData needInstance(); return ClientApp::doIt() ? 0 /*no error*/ : 1 /*error*/;