Corrected way of storing cursor coordinates for context
This commit is contained in:
parent
787415c2aa
commit
f2788a3086
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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 );
|
||||
|
|
Loading…
Reference in New Issue