diff --git a/docs/changes.txt b/docs/changes.txt index feb0423315..38e51842b4 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -18,6 +18,7 @@ Unix: wxGTK: - fixed wxMenu::Remove (John Skiff and Benjamin Williams) +- made wxTextCtrl::EmulateKeyPress() work for Delete and Backspace wxMSW: @@ -27,8 +28,7 @@ wxMSW: All: -- Implemented GetEditControl for wxGenericTreeCtrl (Peter - Stieber) +- Implemented GetEditControl for wxGenericTreeCtrl (Peter Stieber) - Improved contrib/utils/convertrc parsing (David J. Cooke) - Fixed handling of URLs and filenames in wxFileSystem - Implemented alignment for wxGrid bool editor and renderer diff --git a/docs/latex/wx/text.tex b/docs/latex/wx/text.tex index 32527801c3..47d21ad97d 100644 --- a/docs/latex/wx/text.tex +++ b/docs/latex/wx/text.tex @@ -433,6 +433,9 @@ inserted if the given key event had occured in the text control. The {\it event} object should be the same as the one passed to {\tt EVT\_KEY\_DOWN} handler previously by wxWindows. +Please note that this function doesn't currently work correctly for all keys +under any platform but MSW. + \wxheading{Return value} {\tt TRUE} if the event resulted in a change to the control, {\tt FALSE} diff --git a/src/common/textcmn.cpp b/src/common/textcmn.cpp index de9a68979c..c7bb1f7f46 100644 --- a/src/common/textcmn.cpp +++ b/src/common/textcmn.cpp @@ -327,6 +327,26 @@ bool wxTextCtrlBase::EmulateKeyPress(const wxKeyEvent& event) ch = _T('/'); break; + case WXK_DELETE: + case WXK_NUMPAD_DELETE: + // delete the character at cursor + { + const long pos = GetInsertionPoint(), + last = GetLastPosition(); + if ( pos < last ) + Remove(pos, pos + 1); + } + break; + + case WXK_BACK: + // delete the character before the cursor + { + const long pos = GetInsertionPoint(); + if ( pos > 0 ) + Remove(pos - 1, pos); + } + break; + default: if ( keycode < 256 && keycode >= 0 && wxIsprint(keycode) ) {