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
|
void
|
||||||
Layer::WorkspaceActivated(int32 index, bool active)
|
Layer::WorkspaceActivated(int32 index, bool active)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -161,6 +161,7 @@ class Layer {
|
|||||||
virtual void MouseDown(const PointerEvent& evt);
|
virtual void MouseDown(const PointerEvent& evt);
|
||||||
virtual void MouseUp(const PointerEvent& evt);
|
virtual void MouseUp(const PointerEvent& evt);
|
||||||
virtual void MouseMoved(const PointerEvent& evt, uint32 transit);
|
virtual void MouseMoved(const PointerEvent& evt, uint32 transit);
|
||||||
|
virtual void MouseWheelChanged(const PointerEvent& evt);
|
||||||
virtual void WorkspaceActivated(int32 index, bool active);
|
virtual void WorkspaceActivated(int32 index, bool active);
|
||||||
virtual void WorkspacesChanged(uint32 oldWorkspaces, uint32 newWorkspaces);
|
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_x);
|
||||||
msg.Read<float>(&evt.wheel_delta_y);
|
msg.Read<float>(&evt.wheel_delta_y);
|
||||||
|
|
||||||
if (fLastLayerUnderMouse && fLastLayerUnderMouse != this) {
|
if (fLastLayerUnderMouse == NULL) {
|
||||||
if (fLastLayerUnderMouse->fOwner) { // is a Layer object not a WinBorder one
|
CRITICAL("RootLayer::MouseEventHandler(B_MOUSE_DOWN) fLastLayerUnderMouse is null!\n");
|
||||||
if (fLastLayerUnderMouse->fOwner->fTopLayer != fLastLayerUnderMouse) { // must not be the top_view's counterpart
|
break;
|
||||||
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(...)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fLastLayerUnderMouse->MouseWheelChanged(evt);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
|||||||
Reference in New Issue
Block a user