Use IRichEditOleCallback for wxTextCtrl's context menu.

In wxMSW, use IRichEditOleCallback::GetContextMenu() to provide our
default context menu for rich text controls, instead of using
EVT_CONTEXT_MENU.

The latter completely overrides native control's handling and in
particular breaks Windows 8's builtin spellchecking support.

Fall back to the previous non-OLE code for older richtext versions.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@76726 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2014-06-18 12:57:34 +00:00
parent 5e45443568
commit 281f6f7c36
3 changed files with 117 additions and 30 deletions

View File

@@ -170,6 +170,13 @@ public:
// EDIT control has one already)
void OnContextMenu(wxContextMenuEvent& event);
#if wxABI_VERSION >= 30002
// Create context menu for RICHEDIT controls. This may be called once during
// the control's lifetime or every time the menu is shown, depending on
// implementation.
wxMenu *MSWCreateContextMenu();
#endif
// be sure the caret remains invisible if the user
// called HideNativeCaret() before
void OnSetFocus(wxFocusEvent& event);