PackageInstaller: More robust way to select destination...

... after file panel is cancelled.
This commit is contained in:
Stephan Aßmus
2014-02-18 23:01:51 +01:00
parent 1e35b8fc96
commit 51f34888d9
+12 -5
View File
@@ -281,11 +281,18 @@ PackageView::MessageReceived(BMessage* message)
} }
case B_CANCEL: case B_CANCEL:
{ {
// File panel aborted, select first item // File panel aborted, select first suitable item
BMenuItem* item = fDestination->ItemAt(0); for (int32 i = 0; i < fDestination->CountItems(); i++) {
if (item != NULL && item->Message() != NULL) { BMenuItem* item = fDestination->ItemAt(i);
item->SetMarked(true); BMessage* message = item->Message();
Window()->PostMessage(item->Message(), this); if (message == NULL)
continue;
BString path;
if (message->FindString("path", &path) == B_OK) {
fCurrentPath.SetTo(path.String());
item->SetMarked(true);
break;
}
} }
break; break;
} }