From 642d7ca95ecc94f0033ff7e34fb04d27f4313104 Mon Sep 17 00:00:00 2001 From: Adi Oanca Date: Mon, 21 Mar 2005 20:26:44 +0000 Subject: [PATCH] Implemented BView::SetEventMask() git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11945 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/interface/View.cpp | 10 +++++++++- src/kits/interface/Window.cpp | 9 ++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/kits/interface/View.cpp b/src/kits/interface/View.cpp index 400a924a56..20d7580dc7 100644 --- a/src/kits/interface/View.cpp +++ b/src/kits/interface/View.cpp @@ -1330,7 +1330,13 @@ BView::SetEventMask(uint32 mask, uint32 options) fState->archivingFlags |= B_VIEW_EVMASK_BIT; - // TODO: modify! contact app_server! + if (owner) { + check_lock(); + + owner->fLink->StartMessage(AS_LAYER_SET_EVENT_MASK); + owner->fLink->Attach(mask); + owner->fLink->Attach(options); + } return B_OK; } @@ -3850,6 +3856,8 @@ BView::attachView(BView *aView) owner->fLink->AttachString( aView->Name() ); owner->fLink->Attach( aView->Frame() ); owner->fLink->Attach( aView->ResizingMode() ); + owner->fLink->Attach( aView->fEventMask ); + owner->fLink->Attach( aView->fEventOptions ); owner->fLink->Attach( aView->Flags() ); owner->fLink->Attach( aView->IsHidden(aView) ); owner->fLink->Attach( aView->CountChildren() ); diff --git a/src/kits/interface/Window.cpp b/src/kits/interface/Window.cpp index 9c082c9c18..03e2c2dd00 100644 --- a/src/kits/interface/Window.cpp +++ b/src/kits/interface/Window.cpp @@ -888,10 +888,17 @@ void BWindow::DispatchMessage(BMessage *msg, BHandler *target) { BPoint where; uint32 buttons; + uint32 transit; msg->FindPoint( "where", &where ); msg->FindInt32( "buttons", (int32*)&buttons ); - sendMessageUsingEventMask( B_MOUSE_MOVED, where ); + msg->FindInt32( "transit", (int32*)&transit ); + if (target && target != this && target != top_view) + { + ((BView*)target)->ConvertFromScreen(&where); + ((BView*)target)->MouseMoved(where, transit, NULL); + } +// sendMessageUsingEventMask( B_MOUSE_MOVED, where ); break; } case B_PULSE: