From cd916794f0569dae37121d8eea77464e12e8e0f4 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Thu, 2 Jan 2003 00:07:13 +0000 Subject: [PATCH] made generic EmulateKeyPress() to work with Delete and BackSpace (closes bug 658409) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18497 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/changes.txt | 4 ++-- docs/latex/wx/text.tex | 3 +++ src/common/textcmn.cpp | 20 ++++++++++++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) 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) ) { -- 2.47.2