Related bug report: OnDrop - IsControlDown = Crash - Platform & Builds - Unreal Engine Forums
Hope this is enough info to reproduce the bug! Hoping to see this fixed in 4.9.0 so I can remove my hacky bypass.
I tried to find anything in the source code that jumped out at me, but everything seems like it should work. These functions are exceedingly simple. However, it’s probable that ModifierKeys isn’t being initialized correctly, and is null (See Engine/Source/Runtime/SlateCore/Public/Input/Events.h line 182).
Description:
Editor crashes if you have a UMG widget with an OnMouseButtonUp/OnMouseButtonDown/OnKeyUp/OnKeyDown event that uses the “IsShiftDown” node (or any other modifier key down nodes) in the blueprint. There isn’t even a crash report when this occurs (I get the “Unreal Engine has stopped working” generic message from Windows).
Test Setup:
- Windows 7 x64
- Unreal Engine 4.8.3 (bug occurs)
- Unreal Engine 4.9.0 Preview 2 (bug occurs)
Steps To Reproduce:
- Create a new project from the First Person blueprint template
- Create a new Widget Blueprint
- Add a border widget so you have something to click (see figure 1)
- Under the graph tab, override the function “OnMouseButtonUp”
- Simulate the blueprint graph from figure 2 (basically just do anything with IsShiftDown)
- Open the blueprint FirstPersonBP/Blueprints/FirstPersonCharacter
- Delete everything in this blueprint for testing purposes
- Simulate the below blueprint (create our test widget, add it to the viewport, set input mode to UIOnly, set show mouse cursor on the player controller)
- Start game
- Click on our test widget
Function Overrides Tested:
- OnMouseButtonUp (Problem occurs)
- OnMouseButtonDown (Problem occurs)
- OnKeyUp (Problem occurs)
- OnKeyDown (Problem occurs)
Modifier Key Nodes Tested:
- IsControlDown (Problem occurs)
- IsAltDown (Problem occurs)
Figure 1 (Widget Blueprint Designer):
Figure 2 (Widget Blueprint Graph):
Figure 3 (Player Blueprint):