Corrected way of storing cursor coordinates for context

This commit is contained in:
Maciej Suminski 2015-04-30 10:46:06 +02:00
parent 787415c2aa
commit f2788a3086
2 changed files with 8 additions and 2 deletions

View File

@ -594,6 +594,8 @@ void TOOL_MANAGER::dispatchContextMenu( const TOOL_EVENT& aEvent )
// Temporarily store the cursor position, so the tools could execute actions
// using the point where the user has invoked a context menu
bool forcedCursor = m_viewControls->IsCursorPositionForced();
VECTOR2D cursorPos = m_viewControls->GetCursorPosition();
m_viewControls->ForceCursorPosition( true, m_viewControls->GetCursorPosition() );
// Run update handlers
@ -609,7 +611,7 @@ void TOOL_MANAGER::dispatchContextMenu( const TOOL_EVENT& aEvent )
dispatchInternal( evt );
}
m_viewControls->ForceCursorPosition( false );
m_viewControls->ForceCursorPosition( forcedCursor, cursorPos );
break;
}

View File

@ -152,7 +152,6 @@ public:
*/
virtual VECTOR2D GetCursorPosition() const = 0;
/**
* Function ForceCursorPosition()
* Places the cursor immediately at a given point. Mouse movement is ignored.
@ -182,6 +181,11 @@ public:
m_cursorCaptured = aEnabled;
}
inline bool IsCursorPositionForced() const
{
return m_forceCursorPosition;
}
protected:
/// Sets center for VIEW, takes into account panning boundaries.
void setCenter( const VECTOR2D& aCenter );