Some minor fixes.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15042 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler 2005-11-20 16:03:11 +00:00
parent ece36066af
commit ae3ba51fc1
3 changed files with 19 additions and 3 deletions

View File

@ -231,6 +231,9 @@ EventDispatcher::_AddListener(const BMessenger& messenger, int32 token,
if (events == 0)
return false;
ETRACE(("events: add listener: token %ld, events = %ld, options = %ld, %s\n",
token, events, options, temporary ? "temporary" : "permanent"));
// we need a new target
target = new (std::nothrow) event_target;
@ -277,6 +280,9 @@ EventDispatcher::_RemoveTemporaryListeners()
if (target->events == 0) {
// this is only a temporary target
fListeners.RemoveItemAt(i);
ETRACE(("events: remove temp. listener: token %ld, events = %ld, options = %ld\n",
target->token, target->temporary_events, target->temporary_options));
if ((target->temporary_events & B_POINTER_EVENTS) != 0
&& fHasFocus && fFocus == target->messenger) {
@ -285,6 +291,9 @@ EventDispatcher::_RemoveTemporaryListeners()
}
delete target;
} else {
target->temporary_events = 0;
target->temporary_options = 0;
}
}
}
@ -310,6 +319,7 @@ void
EventDispatcher::RemoveListener(const BMessenger& messenger, int32 token)
{
BAutolock _(this);
ETRACE(("events: remove listener token %ld\n", token));
int32 index;
event_target* target = _FindListener(messenger, token, &index);
@ -552,8 +562,10 @@ EventDispatcher::_EventLoop()
// supposed to fall through
default:
if (fHasFocus && !fSuspendFocus)
if (fHasFocus && !fSuspendFocus) {
addedTokens |= _AddTokens(event, fFocusTokens);
_SendMessage(fFocus, event, kStandardImportance);
}
break;
}

View File

@ -15,6 +15,7 @@
#include <new>
#include <stdio.h>
#include <string.h>
EventStream::EventStream()
@ -226,8 +227,9 @@ InputServerStream::_MessageFromPort(BMessage** _message, bigtime_t timeout)
delete[] buffer;
if (status != B_OK) {
printf("Unflatten event failed: port message code was: %ld - %c%c%c%c\n",
code, (int8)(code >> 24), (int8)(code >> 16), (int8)(code >> 8), (int8)code);
printf("Unflatten event failed: %s, port message code was: %ld - %c%c%c%c\n",
strerror(status), code, (int8)(code >> 24), (int8)(code >> 16),
(int8)(code >> 8), (int8)code);
delete message;
return status;
}

View File

@ -11,6 +11,8 @@
#include <LinkReceiver.h>
#include <MessageQueue.h>
#include <Messenger.h>
struct shared_cursor;