Tracker: Write Desktop icon attrs only once
This commit is contained in:
@@ -2571,23 +2571,30 @@ FSGetDeskDir(BDirectory* deskDir)
|
|||||||
if (result != B_OK)
|
if (result != B_OK)
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
|
// set Desktop icons (if they haven't already been set)
|
||||||
|
attr_info attrInfo;
|
||||||
size_t size;
|
size_t size;
|
||||||
const void* data = GetTrackerResources()->
|
const void* data;
|
||||||
LoadResource('ICON', R_DeskIcon, &size);
|
if (deskDir->GetAttrInfo(kAttrLargeIcon, &attrInfo) == B_ENTRY_NOT_FOUND) {
|
||||||
if (data != NULL)
|
data = GetTrackerResources()->LoadResource('ICON', R_DeskIcon, &size);
|
||||||
deskDir->WriteAttr(kAttrLargeIcon, 'ICON', 0, data, size);
|
if (data != NULL)
|
||||||
|
deskDir->WriteAttr(kAttrLargeIcon, 'ICON', 0, data, size);
|
||||||
|
}
|
||||||
|
|
||||||
data = GetTrackerResources()->
|
if (deskDir->GetAttrInfo(kAttrMiniIcon, &attrInfo) == B_ENTRY_NOT_FOUND) {
|
||||||
LoadResource('MICN', R_DeskIcon, &size);
|
data = GetTrackerResources()->LoadResource('MICN', R_DeskIcon, &size);
|
||||||
if (data != NULL)
|
if (data != NULL)
|
||||||
deskDir->WriteAttr(kAttrMiniIcon, 'MICN', 0, data, size);
|
deskDir->WriteAttr(kAttrMiniIcon, 'MICN', 0, data, size);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef __HAIKU__
|
#ifdef __HAIKU__
|
||||||
data = GetTrackerResources()->
|
if (deskDir->GetAttrInfo(kAttrIcon, &attrInfo) == B_ENTRY_NOT_FOUND) {
|
||||||
LoadResource(B_VECTOR_ICON_TYPE, R_DeskIcon, &size);
|
data = GetTrackerResources()->LoadResource(B_VECTOR_ICON_TYPE,
|
||||||
if (data != NULL)
|
R_DeskIcon, &size);
|
||||||
deskDir->WriteAttr(kAttrIcon, B_VECTOR_ICON_TYPE, 0, data, size);
|
if (data != NULL)
|
||||||
#endif
|
deskDir->WriteAttr(kAttrIcon, B_VECTOR_ICON_TYPE, 0, data, size);
|
||||||
|
}
|
||||||
|
#endif // __HAIKU__
|
||||||
|
|
||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user