|
|
@ -1222,7 +1222,7 @@ int
|
|
|
|
StartClient()
|
|
|
|
StartClient()
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
{
|
|
|
|
{
|
|
|
|
const char *home, *sessargs, *desksess;
|
|
|
|
const char *home, *sessargs, *desksess, *deskname;
|
|
|
|
char **env, *xma;
|
|
|
|
char **env, *xma;
|
|
|
|
char **argv, *fname, *str;
|
|
|
|
char **argv, *fname, *str;
|
|
|
|
#ifdef USE_PAM
|
|
|
|
#ifdef USE_PAM
|
|
|
@ -1681,6 +1681,7 @@ StartClient()
|
|
|
|
GSendStr( desksess );
|
|
|
|
GSendStr( desksess );
|
|
|
|
close( mstrtalk.pipe->wfd );
|
|
|
|
close( mstrtalk.pipe->wfd );
|
|
|
|
userEnviron = setEnv( userEnviron, "DESKTOP_SESSION", desksess );
|
|
|
|
userEnviron = setEnv( userEnviron, "DESKTOP_SESSION", desksess );
|
|
|
|
|
|
|
|
userEnviron = setEnv( userEnviron, "XDG_SESSION_DESKTOP", desksess );
|
|
|
|
for (i = 0; td->sessionsDirs[i]; i++) {
|
|
|
|
for (i = 0; td->sessionsDirs[i]; i++) {
|
|
|
|
fname = 0;
|
|
|
|
fname = 0;
|
|
|
|
if (StrApp( &fname, td->sessionsDirs[i], "/", desksess, ".desktop", (char *)0 )) {
|
|
|
|
if (StrApp( &fname, td->sessionsDirs[i], "/", desksess, ".desktop", (char *)0 )) {
|
|
|
@ -1688,6 +1689,10 @@ StartClient()
|
|
|
|
if (!StrCmp( iniEntry( str, "Desktop Entry", "Hidden", 0 ), "true" ) ||
|
|
|
|
if (!StrCmp( iniEntry( str, "Desktop Entry", "Hidden", 0 ), "true" ) ||
|
|
|
|
!(sessargs = iniEntry( str, "Desktop Entry", "Exec", 0 )))
|
|
|
|
!(sessargs = iniEntry( str, "Desktop Entry", "Exec", 0 )))
|
|
|
|
sessargs = "";
|
|
|
|
sessargs = "";
|
|
|
|
|
|
|
|
deskname = iniEntry( str, "Desktop Entry", "DesktopNames", 0 );
|
|
|
|
|
|
|
|
if (deskname) {
|
|
|
|
|
|
|
|
userEnviron = setEnv( userEnviron, "XDG_CURRENT_DESKTOP", deskname );
|
|
|
|
|
|
|
|
}
|
|
|
|
free( str );
|
|
|
|
free( str );
|
|
|
|
free( fname );
|
|
|
|
free( fname );
|
|
|
|
goto gotit;
|
|
|
|
goto gotit;
|
|
|
|