Cursor position is frozen when a context menu is displayed (GAL).
This commit is contained in:
parent
4068d6c858
commit
ff30ced4f4
|
@ -37,6 +37,7 @@
|
|||
#include <wx/clipbrd.h>
|
||||
|
||||
#include <view/view.h>
|
||||
#include <view/view_controls.h>
|
||||
|
||||
#include <tool/tool_base.h>
|
||||
#include <tool/tool_interactive.h>
|
||||
|
@ -577,6 +578,10 @@ void TOOL_MANAGER::dispatchContextMenu( TOOL_EVENT& aEvent )
|
|||
if( st->contextMenuTrigger == CMENU_NOW )
|
||||
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 ) );
|
||||
GetEditFrame()->PopupMenu( menu.get() );
|
||||
|
||||
|
@ -587,6 +592,8 @@ void TOOL_MANAGER::dispatchContextMenu( TOOL_EVENT& aEvent )
|
|||
dispatchInternal( evt );
|
||||
}
|
||||
|
||||
m_viewControls->ForceCursorPosition( false );
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue