The server is too fast sending the messages; we now filter out old mouse events
client side in case B_NO_POINTER_HISTORY is set. This fixes bug #1415. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22021 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
ffdeb47b94
commit
e46b225479
@ -1042,6 +1042,22 @@ FrameMoved(origin);
|
||||
case B_MOUSE_MOVED:
|
||||
{
|
||||
if (BView *view = dynamic_cast<BView *>(target)) {
|
||||
if (view->fEventOptions & B_NO_POINTER_HISTORY) {
|
||||
// filter out older mouse moved messages in the queue
|
||||
_DequeueAll();
|
||||
BMessageQueue *queue = MessageQueue();
|
||||
queue->Lock();
|
||||
|
||||
BMessage *moved;
|
||||
for (int32 i = 0; (moved = queue->FindMessage(i)) != NULL; i++) {
|
||||
if (moved != msg && moved->what == B_MOUSE_MOVED) {
|
||||
queue->Unlock();
|
||||
return;
|
||||
}
|
||||
}
|
||||
queue->Unlock();
|
||||
}
|
||||
|
||||
BPoint where;
|
||||
uint32 buttons;
|
||||
uint32 transit;
|
||||
|
Loading…
Reference in New Issue
Block a user