X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f402150f7790ac06356e14ef0ef814ec03983c6d..bceff574a860c4ecd9bb2d5a1a3f8889fef9306a:/src/stc/ScintillaWX.cpp diff --git a/src/stc/ScintillaWX.cpp b/src/stc/ScintillaWX.cpp index 3bf1d13c43..bf48fe1669 100644 --- a/src/stc/ScintillaWX.cpp +++ b/src/stc/ScintillaWX.cpp @@ -257,7 +257,7 @@ void ScintillaWX::StartDrag() { // We defer the starting of the DnD, otherwise the LeftUp of a normal // click could be lost and the STC will think it is doing a DnD when the // user just wanted a normal click. - startDragTimer->Start(100, true); + startDragTimer->Start(200, true); #endif // wxUSE_DRAG_AND_DROP } @@ -484,7 +484,13 @@ void ScintillaWX::Paste() { wxString text = wxTextBuffer::Translate(data.GetText(), wxConvertEOLMode(pdoc->eolMode)); wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(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); } @@ -827,13 +833,15 @@ void ScintillaWX::DoLeftButtonDown(Point pt, unsigned int curTime, bool shift, b } void ScintillaWX::DoLeftButtonUp(Point pt, unsigned int curTime, bool ctrl) { + ButtonUp(pt, curTime, ctrl); #if wxUSE_DRAG_AND_DROP if (startDragTimer->IsRunning()) { startDragTimer->Stop(); + SetDragPosition(invalidPosition); SetEmptySelection(PositionFromLocation(pt)); + ShowCaretAtCurrentPosition(); } #endif // wxUSE_DRAG_AND_DROP - ButtonUp(pt, curTime, ctrl); } void ScintillaWX::DoLeftButtonMove(Point pt) { @@ -907,10 +915,16 @@ int ScintillaWX::DoKeyDown(const wxKeyEvent& evt, bool* consumed) case WXK_RIGHT: key = SCK_RIGHT; break; case WXK_HOME: key = SCK_HOME; break; case WXK_END: key = SCK_END; break; - case WXK_PAGEUP: // fall through - case WXK_PRIOR: key = SCK_PRIOR; break; - case WXK_PAGEDOWN: // fall through - case WXK_NEXT: key = SCK_NEXT; 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_DELETE: key = SCK_DELETE; break; case WXK_INSERT: key = SCK_INSERT; break; case WXK_ESCAPE: key = SCK_ESCAPE; break;