| FEdMode::InputKey()
|
Module |
|
Header |
/Engine/Plugins/Runtime/HairStrands/Source/HairStrandsEditor/Public/GroomEditorMode.h |
Include |
#include "GroomEditorMode.h" |
Source |
/Engine/Plugins/Runtime/HairStrands/Source/HairStrandsEditor/Private/GroomEditorMode.cpp |
virtual bool InputKey
(
FEditorViewportClient * ViewportClient,
FViewport * Viewport,
FKey Key,
EInputEvent Event
)
Input Button/Axis Events & Mouse Capture
event sequence for left mouse down/capture/up is:
InputKey( EKeys::LeftMouseButton, IE_PRESSED )
CapturedMouseMove() and InputAxis() (repeated for each mouse-move)
Inputkey( EKeys::LeftMouseButton, IE_RELEASED )
for doubleclick, we get one of the above sequence, then a second where instead of the first IE_PRESSED we get a IE_DoubleClick
for mouse wheel, we get following sequence
InputKey ( EKeys::MouseScrollUp / Down, IE_PRESSED )
InputAxis() for wheel move
InputKey ( EKeys::MouseScrollUp / Down, IE_RELEASED ) it appears that there will only ever be oneInputAxis() between the pressed/released sequenece
that this wheel event sequence can happen during a middle-mouse tracking sequence on a wheel-button (nice!)This is not just called for keyboard keys, it is also called for mouse down/up events! Eg for left-press we get Key = EKeys::LeftMouseButton and Event = IE_Pressed Return value indicates "handled'. If we return true for mouse press events then the StartTracking/CapturedMouseMove/EndTracking sequence is not called (but we also don't get MouseMove(), so the mouse-movement events appear to be lost?)