SendNotices() should send messages also to observers interested to all kind of messages.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13222 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -144,7 +144,7 @@ using std::vector;
|
|||||||
using BPrivate::gDefaultTokens;
|
using BPrivate::gDefaultTokens;
|
||||||
|
|
||||||
|
|
||||||
static const char *sArchiveNameField = "_name";
|
static const char *kArchiveNameField = "_name";
|
||||||
|
|
||||||
static property_info sHandlerPropInfo[] = {
|
static property_info sHandlerPropInfo[] = {
|
||||||
{
|
{
|
||||||
@@ -241,7 +241,7 @@ BHandler::BHandler(BMessage *data)
|
|||||||
const char *name = NULL;
|
const char *name = NULL;
|
||||||
|
|
||||||
if (data)
|
if (data)
|
||||||
data->FindString(sArchiveNameField, &name);
|
data->FindString(kArchiveNameField, &name);
|
||||||
|
|
||||||
InitData(name);
|
InitData(name);
|
||||||
}
|
}
|
||||||
@@ -264,7 +264,7 @@ BHandler::Archive(BMessage *data, bool deep) const
|
|||||||
if (status < B_OK)
|
if (status < B_OK)
|
||||||
return status;
|
return status;
|
||||||
|
|
||||||
return data->AddString(sArchiveNameField, fName);
|
return data->AddString(kArchiveNameField, fName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -829,6 +829,21 @@ _ObserverList::SendNotices(unsigned long what, BMessage const *message)
|
|||||||
messengers[i].SendMessage(copyMsg);
|
messengers[i].SendMessage(copyMsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// We have to send the message also to the handlers
|
||||||
|
// and messengers which were subscribed to ALL events,
|
||||||
|
// since they aren't caught by the above loops.
|
||||||
|
// TODO: cleanup
|
||||||
|
handlers = fHandlerMap[B_OBSERVER_OBSERVE_ALL];
|
||||||
|
for (uint32 i = 0; i < handlers.size(); ++i) {
|
||||||
|
BMessenger msgr(handlers[i]);
|
||||||
|
msgr.SendMessage(copyMsg);
|
||||||
|
}
|
||||||
|
|
||||||
|
messengers = fMessengerMap[B_OBSERVER_OBSERVE_ALL];
|
||||||
|
for (uint32 i = 0; i < messengers.size(); ++i) {
|
||||||
|
messengers[i].SendMessage(copyMsg);
|
||||||
|
}
|
||||||
|
|
||||||
// Gotta make sure to clean up the annoying temporary ...
|
// Gotta make sure to clean up the annoying temporary ...
|
||||||
delete copyMsg;
|
delete copyMsg;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user