Description

When double click splines point tangent, the editor will crash. 

This issue related to [Link Removed], it didn't care about double-click case.

Workaround:

void FEditorViewportClient::ProcessDoubleClickInViewport( const struct FInputEventState& InputState, FSceneView& View )
{
    MouseDeltaTracker->StartTracking( this, HitX, HitY, InputState );
    bIsTracking = true;
    GEditor->MouseMovement = FVector::ZeroVector;

#if false // exchange this code
    HHitProxy*    HitProxy = InputStateViewport->GetHitProxy(HitX,HitY);
#else
    TRefCountPtr<HHitProxy> HitProxy = InputStateViewport->GetHitProxy(HitX, HitY);
#endif

    ProcessClick(View,HitProxy,Key,Event,HitX,HitY);
    MouseDeltaTracker->EndTracking( this );
    bIsTracking = false;
} 
Steps to Reproduce
  1. Create landscape
  2. Add landscape spline
  3. Add mesh to landscape spline
  4. Create a long length of spline
  5. Click one of the spline mesh pieces
  6. Double-click one of the little white boxes to adjust the curve of the spline
Callstack
UnrealEditor-Engine.dll!HHitProxy::IsA(HHitProxyType * TestType) Line 118    C++
UnrealEditor-LandscapeEditor.dll!FLandscapeToolSplines::HandleClick(HHitProxy * HitProxy, const FViewportClick & Click) Line 1118    C++
UnrealEditor-LandscapeEditor.dll!FEdModeLandscape::HandleClick(FEditorViewportClient * InViewportClient, HHitProxy * HitProxy, const FViewportClick & Click) Line 1594    C++
Line UnrealEditor-UnrealEd.dll!FEditorModeTools::HandleClick::__l2::<lambda_fbc7d2385a9974fad91e7fca122c7787>::operator()(ILegacyEdModeViewportInterface *) Line 1174    C++
Line UnrealEditor-UnrealEd.dll!Invoke(FEditorModeTools::HandleClick::__l2::<lambda_fbc7d2385a9974fad91e7fca122c7787> &) Line 47    C++
UnrealEditor-UnrealEd.dll!UE::Core::Private::Function::TFunctionRefCaller<<lambda_fbc7d2385a9974fad91e7fca122c7787>,bool __cdecl(ILegacyEdModeViewportInterface *)>::Call(void * Obj, ILegacyEdModeViewportInterface * & <Params_0>) Line 465    C++
Line UnrealEditor-UnrealEd.dll!UE::Core::Private::Function::TFunctionRefBase<UE::Core::Private::Function::FFunctionRefStoragePolicy,bool __cdecl(ILegacyEdModeViewportInterface *)>::operator()(ILegacyEdModeViewportInterface * <Params_0>) Line 602    C++
Line UnrealEditor-UnrealEd.dll!FEditorModeTools::ForEachEdMode::__l2::<lambda_26a4ed9d0532b410e8a141ca95a30f0e>::operator()(UEdMode *) Line 555    C++
Line UnrealEditor-UnrealEd.dll!Invoke(FEditorModeTools::ForEachEdMode::__l2::<lambda_26a4ed9d0532b410e8a141ca95a30f0e> &) Line 47    C++
UnrealEditor-UnrealEd.dll!UE::Core::Private::Function::TFunctionRefCaller<<lambda_26a4ed9d0532b410e8a141ca95a30f0e>,bool __cdecl(UEdMode *)>::Call(void * Obj, UEdMode * & <Params_0>) Line 466    C++
Line UnrealEditor-UnrealEd.dll!UE::Core::Private::Function::TFunctionRefBase<UE::Core::Private::Function::FFunctionRefStoragePolicy,bool __cdecl(UEdMode *)>::operator()(UEdMode * <Params_0>) Line 602    C++
UnrealEditor-UnrealEd.dll!FEditorModeTools::ForEachEdMode(TFunctionRef<bool __cdecl(UEdMode *)> InCalllback) Line 607    C++
UnrealEditor-UnrealEd.dll!FEditorModeTools::ForEachEdMode<ILegacyEdModeViewportInterface>(TFunctionRef<bool __cdecl(ILegacyEdModeViewportInterface *)> InCallback) Line 551    C++
UnrealEditor-UnrealEd.dll!FEditorModeTools::HandleClick(FEditorViewportClient * InViewportClient, HHitProxy * HitProxy, const FViewportClick & Click) Line 1172    C++
UnrealEditor-UnrealEd.dll!FLevelEditorViewportClient::ProcessClick(FSceneView & View, HHitProxy * HitProxy, FKey Key, EInputEvent Event, unsigned int HitX, unsigned int HitY) Line 2317    C++
UnrealEditor-UnrealEd.dll!FEditorViewportClient::ProcessDoubleClickInViewport(const FInputEventState & InputState, FSceneView & View) Line 3244    C++
UnrealEditor-UnrealEd.dll!FEditorViewportClient::Internal_InputKey(const FInputKeyEventArgs & EventArgs) Line 2972    C++
UnrealEditor-UnrealEd.dll!FLevelEditorViewportClient::InputKey(const FInputKeyEventArgs & InEventArgs) Line 3041    C++
UnrealEditor-Engine.dll!FSceneViewport::OnMouseButtonDoubleClick(const FGeometry & InGeometry, const FPointerEvent & InMouseEvent) Line 806    C++
UnrealEditor-Slate.dll!SViewport::OnMouseButtonDoubleClick(const FGeometry & MyGeometry, const FPointerEvent & MouseEvent) Line 281    C++
Line UnrealEditor-Slate.dll!FSlateApplication::RoutePointerDoubleClickEvent::__l2::<lambda_78edfce7e8004af14cff0d7d3c3f4e9b>::operator()(const FArrangedWidget &) Line 5530    C++
UnrealEditor-Slate.dll!FEventRouter::Route<FReply,FEventRouter::FBubblePolicy,FPointerEvent,<lambda_78edfce7e8004af14cff0d7d3c3f4e9b>>(FSlateApplication * ThisApplication, FEventRouter::FBubblePolicy RoutingPolicy, FPointerEvent EventCopy, const FSlateApplication::RoutePointerDoubleClickEvent::__l2::<lambda_78edfce7e8004af14cff0d7d3c3f4e9b> & Lambda, ESlateDebuggingInputEvent DebuggingInputEvent) Line 412    C++
UnrealEditor-Slate.dll!FSlateApplication::RoutePointerDoubleClickEvent(const FWidgetPath & WidgetsUnderPointer, const FPointerEvent & PointerEvent) Line 5528    C++
UnrealEditor-Slate.dll!FSlateApplication::ProcessMouseButtonDoubleClickEvent(const TSharedPtr<FGenericWindow,1> & PlatformWindow, const FPointerEvent & InMouseEvent) Line 5513    C++
UnrealEditor-Slate.dll!FSlateApplication::OnMouseDoubleClick(const TSharedPtr<FGenericWindow,1> & PlatformWindow, const EMouseButtons::Type Button, const UE::Math::TVector2<double> CursorPos) Line 5476    C++
UnrealEditor-ApplicationCore.dll!FWindowsApplication::ProcessDeferredMessage(const FDeferredWindowsMessage & DeferredMessage) Line 2223    C++
UnrealEditor-ApplicationCore.dll!FWindowsApplication::DeferMessage(TSharedPtr<FWindowsWindow,1> & NativeWindow, HWND__ * InHWnd, unsigned int InMessage, unsigned __int64 InWParam, __int64 InLParam, int MouseX, int MouseY, unsigned int RawInputFlags) Line 2726    C++
UnrealEditor-ApplicationCore.dll!FWindowsApplication::ProcessMessage(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 1895    C++
Line UnrealEditor-ApplicationCore.dll!WindowsApplication_WndProc(HWND__ *) Line 919    C++
UnrealEditor-ApplicationCore.dll!FWindowsApplication::AppWndProc(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 925    C++
Line UnrealEditor-ApplicationCore.dll!WinPumpMessages() Line 113    C++
UnrealEditor-ApplicationCore.dll!FWindowsPlatformApplicationMisc::PumpMessages(bool bFromMainLoop) Line 142    C++
UnrealEditor.exe!FEngineLoop::Tick() Line 5293    C++
Line UnrealEditor.exe!EngineTick() Line 66    C++
UnrealEditor.exe!GuardedMain(const wchar_t * CmdLine) Line 202    C++
UnrealEditor.exe!LaunchWindowsStartup(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow, const wchar_t * CmdLine) Line 233    C++
UnrealEditor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * pCmdLine, int nCmdShow) Line 282    C++ 

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-182880 in the post.

0
Login to Vote

Fixed
ComponentUE - LD & Modeling - Terrain - Landscape
Affects Versions5.05.1
Target Fix5.3
Fix Commit25049653
Main Commit25049653
CreatedApr 11, 2023
ResolvedApr 14, 2023
UpdatedApr 30, 2023