diff --git a/src/apps/showimage/ShowImageView.cpp b/src/apps/showimage/ShowImageView.cpp index e6d9a70ace..d82d3c89f1 100644 --- a/src/apps/showimage/ShowImageView.cpp +++ b/src/apps/showimage/ShowImageView.cpp @@ -347,12 +347,13 @@ ShowImageView::SetImage(const BMessage* message) || message->FindRef("ref", &ref) != B_OK || bitmap == NULL) return B_ERROR; - status_t status = SetImage(&ref, bitmap); + BitmapOwner* bitmapOwner; + message->FindPointer("bitmapOwner", (void**)&bitmapOwner); + + status_t status = SetImage(&ref, bitmap, bitmapOwner); if (status == B_OK) { fFormatDescription = message->FindString("type"); fMimeType = message->FindString("mime"); - - message->FindPointer("bitmapOwner", (void**)&fBitmapOwner); } return status; @@ -360,7 +361,8 @@ ShowImageView::SetImage(const BMessage* message) status_t -ShowImageView::SetImage(const entry_ref* ref, BBitmap* bitmap) +ShowImageView::SetImage(const entry_ref* ref, BBitmap* bitmap, + BitmapOwner* bitmapOwner) { // Delete the old one, and clear everything fUndo.Clear(); @@ -369,6 +371,7 @@ ShowImageView::SetImage(const entry_ref* ref, BBitmap* bitmap) _DeleteBitmap(); fBitmap = bitmap; + fBitmapOwner = bitmapOwner; if (ref == NULL) fCurrentRef.device = -1; else diff --git a/src/apps/showimage/ShowImageView.h b/src/apps/showimage/ShowImageView.h index b14985b028..bdf4d106f6 100644 --- a/src/apps/showimage/ShowImageView.h +++ b/src/apps/showimage/ShowImageView.h @@ -52,7 +52,8 @@ public: void SetTrackerMessenger( const BMessenger& trackerMessenger); status_t SetImage(const BMessage* message); - status_t SetImage(const entry_ref* ref, BBitmap* bitmap); + status_t SetImage(const entry_ref* ref, BBitmap* bitmap, + BitmapOwner* bitmapOwner); const entry_ref* Image() const { return &fCurrentRef; } BBitmap* Bitmap();