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:
{
// File panel aborted, select first item
BMenuItem* item = fDestination->ItemAt(0);
if (item != NULL && item->Message() != NULL) {
item->SetMarked(true);
Window()->PostMessage(item->Message(), this);
// File panel aborted, select first suitable item
for (int32 i = 0; i < fDestination->CountItems(); i++) {
BMenuItem* item = fDestination->ItemAt(i);
BMessage* message = item->Message();
if (message == NULL)
continue;
BString path;
if (message->FindString("path", &path) == B_OK) {
fCurrentPath.SetTo(path.String());
item->SetMarked(true);
break;
}
}
break;
}