Commit ff30ced4 authored by Maciej Suminski's avatar Maciej Suminski

Cursor position is frozen when a context menu is displayed (GAL).

parent 4068d6c8
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
#include <wx/clipbrd.h> #include <wx/clipbrd.h>
#include <view/view.h> #include <view/view.h>
#include <view/view_controls.h>
#include <tool/tool_base.h> #include <tool/tool_base.h>
#include <tool/tool_interactive.h> #include <tool/tool_interactive.h>
...@@ -577,6 +578,10 @@ void TOOL_MANAGER::dispatchContextMenu( TOOL_EVENT& aEvent ) ...@@ -577,6 +578,10 @@ void TOOL_MANAGER::dispatchContextMenu( TOOL_EVENT& aEvent )
if( st->contextMenuTrigger == CMENU_NOW ) if( st->contextMenuTrigger == CMENU_NOW )
st->contextMenuTrigger = CMENU_OFF; st->contextMenuTrigger = CMENU_OFF;
// Temporarily store the cursor position, so the tools could execute actions
// using the point where the user has invoked a context menu
m_viewControls->ForceCursorPosition( true, m_viewControls->GetCursorPosition() );
boost::scoped_ptr<CONTEXT_MENU> menu( new CONTEXT_MENU( *st->contextMenu ) ); boost::scoped_ptr<CONTEXT_MENU> menu( new CONTEXT_MENU( *st->contextMenu ) );
GetEditFrame()->PopupMenu( menu.get() ); GetEditFrame()->PopupMenu( menu.get() );
...@@ -587,6 +592,8 @@ void TOOL_MANAGER::dispatchContextMenu( TOOL_EVENT& aEvent ) ...@@ -587,6 +592,8 @@ void TOOL_MANAGER::dispatchContextMenu( TOOL_EVENT& aEvent )
dispatchInternal( evt ); dispatchInternal( evt );
} }
m_viewControls->ForceCursorPosition( false );
break; break;
} }
} }
......
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