X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/134d7051bf501b1c07ac6963b38203bcfce1b6d4..81bfc17cc63bde7034da16df0c9cb246a8738337:/src/stc/ScintillaWX.cpp diff --git a/src/stc/ScintillaWX.cpp b/src/stc/ScintillaWX.cpp index 764048fbc2..df2f36e343 100644 --- a/src/stc/ScintillaWX.cpp +++ b/src/stc/ScintillaWX.cpp @@ -483,11 +483,14 @@ void ScintillaWX::Paste() { if (gotData) { wxString text = wxTextBuffer::Translate(data.GetText(), wxConvertEOLMode(pdoc->eolMode)); - data.SetText(wxEmptyString); // free the data object content wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(text); - text = wxEmptyString; // free text - int len = strlen(buf); +#if wxUSE_UNICODE + // free up the old character buffer in case the text is real big + data.SetText(wxEmptyString); + text = wxEmptyString; +#endif + int len = strlen(buf); pdoc->InsertString(currentPos, buf, len); SetEmptySelection(currentPos + len); } @@ -914,8 +917,16 @@ int ScintillaWX::DoKeyDown(const wxKeyEvent& evt, bool* consumed) case WXK_END: key = SCK_END; break; case WXK_PAGEUP: key = SCK_PRIOR; break; case WXK_PAGEDOWN: key = SCK_NEXT; break; + case WXK_NUMPAD_DOWN: key = SCK_DOWN; break; + case WXK_NUMPAD_UP: key = SCK_UP; break; + case WXK_NUMPAD_LEFT: key = SCK_LEFT; break; + case WXK_NUMPAD_RIGHT: key = SCK_RIGHT; break; + case WXK_NUMPAD_HOME: key = SCK_HOME; break; + case WXK_NUMPAD_END: key = SCK_END; break; case WXK_NUMPAD_PAGEUP: key = SCK_PRIOR; break; case WXK_NUMPAD_PAGEDOWN: key = SCK_NEXT; break; + case WXK_NUMPAD_DELETE: key = SCK_DELETE; break; + case WXK_NUMPAD_INSERT: key = SCK_INSERT; break; case WXK_DELETE: key = SCK_DELETE; break; case WXK_INSERT: key = SCK_INSERT; break; case WXK_ESCAPE: key = SCK_ESCAPE; break;