Introduced Layer::MouseWheelChanged(). Cleaned up RootLayer::MouseEventHandler::case B_MOUSE_WHEEL_CHANGED.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14490 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1153,6 +1153,19 @@ Layer::MouseMoved(const PointerEvent& evt, uint32 transit)
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
Layer::MouseWheelChanged(const PointerEvent& evt)
|
||||
{
|
||||
if (Window() && !IsTopLayer()) {
|
||||
BMessage wheelmsg(B_MOUSE_WHEEL_CHANGED);
|
||||
wheelmsg.AddInt64("when", evt.when);
|
||||
wheelmsg.AddFloat("be:wheel_delta_x",evt.wheel_delta_x);
|
||||
wheelmsg.AddFloat("be:wheel_delta_y",evt.wheel_delta_y);
|
||||
|
||||
Window()->SendMessageToClient(&wheelmsg, fViewToken, false);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
Layer::WorkspaceActivated(int32 index, bool active)
|
||||
{
|
||||
|
||||
@@ -161,6 +161,7 @@ class Layer {
|
||||
virtual void MouseDown(const PointerEvent& evt);
|
||||
virtual void MouseUp(const PointerEvent& evt);
|
||||
virtual void MouseMoved(const PointerEvent& evt, uint32 transit);
|
||||
virtual void MouseWheelChanged(const PointerEvent& evt);
|
||||
virtual void WorkspaceActivated(int32 index, bool active);
|
||||
virtual void WorkspacesChanged(uint32 oldWorkspaces, uint32 newWorkspaces);
|
||||
|
||||
|
||||
@@ -1138,20 +1138,12 @@ RootLayer::MouseEventHandler(int32 code, BPrivate::PortLink& msg)
|
||||
msg.Read<float>(&evt.wheel_delta_x);
|
||||
msg.Read<float>(&evt.wheel_delta_y);
|
||||
|
||||
if (fLastLayerUnderMouse && fLastLayerUnderMouse != this) {
|
||||
if (fLastLayerUnderMouse->fOwner) { // is a Layer object not a WinBorder one
|
||||
if (fLastLayerUnderMouse->fOwner->fTopLayer != fLastLayerUnderMouse) { // must not be the top_view's counterpart
|
||||
BMessage wheelmsg(B_MOUSE_WHEEL_CHANGED);
|
||||
wheelmsg.AddInt64("when", evt.when);
|
||||
wheelmsg.AddFloat("be:wheel_delta_x",evt.wheel_delta_x);
|
||||
wheelmsg.AddFloat("be:wheel_delta_y",evt.wheel_delta_y);
|
||||
fLastLayerUnderMouse->Window()->SendMessageToClient(&wheelmsg, fLastLayerUnderMouse->fViewToken, false);
|
||||
}
|
||||
} else {
|
||||
// TODO: WinBorder::MouseWheel() should dissapear or get other params!
|
||||
// ((WinBorder*)fLastLayerUnderMouse)->MouseWheel(...)
|
||||
}
|
||||
if (fLastLayerUnderMouse == NULL) {
|
||||
CRITICAL("RootLayer::MouseEventHandler(B_MOUSE_DOWN) fLastLayerUnderMouse is null!\n");
|
||||
break;
|
||||
}
|
||||
|
||||
fLastLayerUnderMouse->MouseWheelChanged(evt);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user