Safety for frames which don't have an m_viewControls.

This commit is contained in:
Jeff Young 2019-10-03 21:36:11 +01:00
parent 3a2dbf7786
commit d22ea0e201
3 changed files with 23 additions and 2 deletions

View File

@ -457,7 +457,7 @@ void ACTION_MENU::OnMenuEvent( wxMenuEvent& aEvent )
if( type == wxEVT_COMMAND_MENU_SELECTED ) if( type == wxEVT_COMMAND_MENU_SELECTED )
evt->SetMousePosition( g_menu_open_position ); evt->SetMousePosition( g_menu_open_position );
else else
evt->SetMousePosition( getToolManager()->GetViewControls()->GetMousePosition() ); evt->SetMousePosition( getToolManager()->GetMousePosition() );
if( g_last_menu_highlighted_id == aEvent.GetId() && !m_isContextMenu ) if( g_last_menu_highlighted_id == aEvent.GetId() && !m_isContextMenu )
evt->SetHasPosition( false ); evt->SetHasPosition( false );

View File

@ -278,13 +278,31 @@ bool TOOL_MANAGER::RunAction( const std::string& aActionName, bool aNow, void* a
} }
VECTOR2D TOOL_MANAGER::GetMousePosition()
{
if( m_viewControls )
return m_viewControls->GetMousePosition();
else
return wxGetMousePosition();
}
VECTOR2D TOOL_MANAGER::GetCursorPosition()
{
if( m_viewControls )
return m_viewControls->GetCursorPosition();
else
return wxGetMousePosition();
}
bool TOOL_MANAGER::RunAction( const TOOL_ACTION& aAction, bool aNow, void* aParam ) bool TOOL_MANAGER::RunAction( const TOOL_ACTION& aAction, bool aNow, void* aParam )
{ {
bool handled = false; bool handled = false;
TOOL_EVENT event = aAction.MakeEvent(); TOOL_EVENT event = aAction.MakeEvent();
if( event.Category() == TC_COMMAND ) if( event.Category() == TC_COMMAND )
event.SetMousePosition( m_viewControls->GetCursorPosition() ); event.SetMousePosition( GetCursorPosition() );
// Allow to override the action parameter // Allow to override the action parameter
if( aParam ) if( aParam )

View File

@ -257,6 +257,9 @@ public:
return m_viewControls; return m_viewControls;
} }
VECTOR2D GetMousePosition();
VECTOR2D GetCursorPosition();
inline EDA_ITEM* GetModel() const inline EDA_ITEM* GetModel() const
{ {
return m_model; return m_model;