Commit f2788a30 authored by Maciej Suminski's avatar Maciej Suminski

Corrected way of storing cursor coordinates for context

parent 787415c2
...@@ -594,6 +594,8 @@ void TOOL_MANAGER::dispatchContextMenu( const TOOL_EVENT& aEvent ) ...@@ -594,6 +594,8 @@ void TOOL_MANAGER::dispatchContextMenu( const TOOL_EVENT& aEvent )
// Temporarily store the cursor position, so the tools could execute actions // Temporarily store the cursor position, so the tools could execute actions
// using the point where the user has invoked a context menu // 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() ); m_viewControls->ForceCursorPosition( true, m_viewControls->GetCursorPosition() );
// Run update handlers // Run update handlers
...@@ -609,7 +611,7 @@ void TOOL_MANAGER::dispatchContextMenu( const TOOL_EVENT& aEvent ) ...@@ -609,7 +611,7 @@ void TOOL_MANAGER::dispatchContextMenu( const TOOL_EVENT& aEvent )
dispatchInternal( evt ); dispatchInternal( evt );
} }
m_viewControls->ForceCursorPosition( false ); m_viewControls->ForceCursorPosition( forcedCursor, cursorPos );
break; break;
} }
......
...@@ -152,7 +152,6 @@ public: ...@@ -152,7 +152,6 @@ public:
*/ */
virtual VECTOR2D GetCursorPosition() const = 0; virtual VECTOR2D GetCursorPosition() const = 0;
/** /**
* Function ForceCursorPosition() * Function ForceCursorPosition()
* Places the cursor immediately at a given point. Mouse movement is ignored. * Places the cursor immediately at a given point. Mouse movement is ignored.
...@@ -182,6 +181,11 @@ public: ...@@ -182,6 +181,11 @@ public:
m_cursorCaptured = aEnabled; m_cursorCaptured = aEnabled;
} }
inline bool IsCursorPositionForced() const
{
return m_forceCursorPosition;
}
protected: protected:
/// Sets center for VIEW, takes into account panning boundaries. /// Sets center for VIEW, takes into account panning boundaries.
void setCenter( const VECTOR2D& aCenter ); void setCenter( const VECTOR2D& aCenter );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment