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 <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 )
|
||||||
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 )
|
||||||
dispatchInternal( evt );
|
dispatchInternal( evt );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_viewControls->ForceCursorPosition( false );
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue