summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2012-06-21 13:20:22 +0200
committerStephan Bergmann <sbergman@redhat.com>2012-06-21 13:26:04 +0200
commit0f12c5de67869593cfbc36760957467a122bf81a (patch)
treee0c68d0195847d55f39898cb83e14cbcc25a3668
parent7279610bbd403fbbb12a894d334a6ec4ba259600 (diff)
Fix X Session Management support
...passing -session= into soffice was no longer supported. The way I tested this with Gnome 3.4 (Fedora 17) is with: * Run gnome-session-properties to select "Options - Automatically remember running applications when logging out" * Create ~/.local/share/applications/lodev.desktop: [Desktop Entry] Exec=.../core/solver/unxlngx6/installation/opt/program/soffice Icon=libreoffice-startcenter Name=LOdev Type=Application * Run "startx /usr/bin/gnome-session -- /usr/bin/Xephyr :1" Change-Id: Id8a6e431e4c355caafa6c7111a435ebc0d35f78a
-rw-r--r--desktop/source/app/cmdlineargs.cxx3
-rw-r--r--vcl/unx/generic/app/sm.cxx8
2 files changed, 7 insertions, 4 deletions
diff --git a/desktop/source/app/cmdlineargs.cxx b/desktop/source/app/cmdlineargs.cxx
index cbfc4ed690b2..af7ee26e21e3 100644
--- a/desktop/source/app/cmdlineargs.cxx
+++ b/desktop/source/app/cmdlineargs.cxx
@@ -293,6 +293,9 @@ void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
if (!oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("backtrace")) &&
!oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("strace")) &&
!oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("valgrind")) &&
+ // for X Session Management, handled in
+ // vcl/unx/generic/app/sm.cxx:
+ !oArg.match("session=") &&
//ignore additional legacy options that don't do anything anymore
!oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("nocrashreport")))
{
diff --git a/vcl/unx/generic/app/sm.cxx b/vcl/unx/generic/app/sm.cxx
index a897805b9b62..e0bbdb918ed0 100644
--- a/vcl/unx/generic/app/sm.cxx
+++ b/vcl/unx/generic/app/sm.cxx
@@ -197,11 +197,11 @@ static void BuildSmPropertyList()
pSmProps[ 2 ].vals[0].length = aExec.getLength()+1;
pSmProps[ 2 ].vals[0].value = strdup( aExec.getStr() );
rtl::OStringBuffer aRestartOption;
- aRestartOption.append(RTL_CONSTASCII_STRINGPARAM("-session="));
+ aRestartOption.append(RTL_CONSTASCII_STRINGPARAM("--session="));
aRestartOption.append(SessionManagerClient::getSessionID());
pSmProps[ 2 ].vals[1].length = aRestartOption.getLength()+1;
pSmProps[ 2 ].vals[1].value = strdup(aRestartOption.getStr());
- rtl::OString aRestartOptionNoLogo(RTL_CONSTASCII_STRINGPARAM("-nologo"));
+ rtl::OString aRestartOptionNoLogo(RTL_CONSTASCII_STRINGPARAM("--nologo"));
pSmProps[ 2 ].vals[2].length = aRestartOptionNoLogo.getLength()+1;
pSmProps[ 2 ].vals[2].value = strdup(aRestartOptionNoLogo.getStr());
@@ -544,10 +544,10 @@ const rtl::OString& SessionManagerClient::getPreviousSessionID()
{
::rtl::OUString aArg;
osl_getCommandArg( i, &aArg.pData );
- if(aArg.matchAsciiL(RTL_CONSTASCII_STRINGPARAM("-session=")))
+ if(aArg.matchAsciiL(RTL_CONSTASCII_STRINGPARAM("--session=")))
{
aPrevId = rtl::OUStringToOString(
- aArg.copy(RTL_CONSTASCII_LENGTH("-session=")),
+ aArg.copy(RTL_CONSTASCII_LENGTH("--session=")),
osl_getThreadTextEncoding());
break;
}