BApplication: Fix B_ARGV_* handling on silent relaunch.
In hrev47355 a logic reversal was introduced as part of a cleanup commit which caused B_ARGV_RECEIVED to be sent only to apps with the B_ARGV_ONLY flag set instead of clear. In addition to that, don't send the B_SILENT_RELAUNCH message for apps with B_ARGV_ONLY either, as they are not supposed to receive messages after launch. This is in line with the documentation and what BRoster does.
This commit is contained in:
parent
06ba99b08a
commit
9b3be14015
@ -445,10 +445,11 @@ BApplication::_InitData(const char* signature, bool initGUI, status_t* _error)
|
||||
if (otherTeam >= 0) {
|
||||
BMessenger otherApp(NULL, otherTeam);
|
||||
app_info otherAppInfo;
|
||||
if (__libc_argc > 1
|
||||
&& be_roster->GetRunningAppInfo(otherTeam, &otherAppInfo)
|
||||
== B_OK
|
||||
&& (otherAppInfo.flags & B_ARGV_ONLY) != 0) {
|
||||
bool argvOnly = be_roster->GetRunningAppInfo(otherTeam,
|
||||
&otherAppInfo) == B_OK
|
||||
&& (otherAppInfo.flags & B_ARGV_ONLY) != 0;
|
||||
|
||||
if (__libc_argc > 1 && !argvOnly) {
|
||||
// create an B_ARGV_RECEIVED message
|
||||
BMessage argvMessage(B_ARGV_RECEIVED);
|
||||
fill_argv_message(argvMessage);
|
||||
@ -461,7 +462,7 @@ BApplication::_InitData(const char* signature, bool initGUI, status_t* _error)
|
||||
|
||||
// send the message
|
||||
otherApp.SendMessage(&argvMessage);
|
||||
} else
|
||||
} else if (!argvOnly)
|
||||
otherApp.SendMessage(B_SILENT_RELAUNCH);
|
||||
}
|
||||
} else if (fInitError == B_OK) {
|
||||
|
Loading…
Reference in New Issue
Block a user