From 621c9d1243715af00b4b995607d71cc3e4814deb Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Wed, 25 Jun 2014 11:13:02 +0200 Subject: [PATCH] Update bookmark bar item BMessage on file rename. The ref stored in the message must be replaced to point to the new file name. Fixes #10962. --- src/apps/webpositive/BookmarkBar.cpp | 22 ++++++++++++++-------- src/apps/webpositive/BrowserApp.cpp | 1 - 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/apps/webpositive/BookmarkBar.cpp b/src/apps/webpositive/BookmarkBar.cpp index d72d738a13..7bbed5f050 100644 --- a/src/apps/webpositive/BookmarkBar.cpp +++ b/src/apps/webpositive/BookmarkBar.cpp @@ -79,15 +79,15 @@ BookmarkBar::MessageReceived(BMessage* message) } case B_ENTRY_MOVED: { + entry_ref ref; + const char *name; + + message->FindInt32("device", &ref.device); + message->FindInt64("to directory", &ref.directory); + message->FindString("name", &name); + ref.set_name(name); + if (fItemsMap[inode] == NULL) { - entry_ref ref; - const char *name; - - message->FindInt32("device", &ref.device); - message->FindInt64("to directory", &ref.directory); - message->FindString("name", &name); - ref.set_name(name); - BEntry entry(&ref); _AddItem(inode, &entry); break; @@ -101,6 +101,12 @@ BookmarkBar::MessageReceived(BMessage* message) const char *name; if (message->FindString("name", &name) == B_OK) fItemsMap[inode]->SetLabel(name); + + BMessage* itemMessage = new BMessage( + B_REFS_RECEIVED); + itemMessage->AddRef("refs", &ref); + fItemsMap[inode]->SetMessage(itemMessage); + break; } } diff --git a/src/apps/webpositive/BrowserApp.cpp b/src/apps/webpositive/BrowserApp.cpp index 5243513780..9f2876a8bd 100644 --- a/src/apps/webpositive/BrowserApp.cpp +++ b/src/apps/webpositive/BrowserApp.cpp @@ -372,7 +372,6 @@ void BrowserApp::_RefsReceived(BMessage* message, int32* _pagesCreated, bool* _fullscreen) { - puts("refs!"); int32 pagesCreated = 0; BrowserWindow* window = NULL;