Kaydet (Commit) 0f12c5de authored tarafından Stephan Bergmann's avatar Stephan Bergmann

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
üst 7279610b
......@@ -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")))
{
......
......@@ -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;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment