X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6a1e8a634a09fa3ff09fe5190429f47e37b1930e..fda62793585ef3ebaa8823be7c1a3e3538e5349a:/src/generic/grideditors.cpp diff --git a/src/generic/grideditors.cpp b/src/generic/grideditors.cpp index ef818831bb..57f01972b3 100644 --- a/src/generic/grideditors.cpp +++ b/src/generic/grideditors.cpp @@ -355,7 +355,7 @@ bool wxGridCellEditor::IsAcceptedKey(wxKeyEvent& event) return false; #if wxUSE_UNICODE - if ( event.GetUnicodeKey() == WXK_NONE ) + if ( static_cast(event.GetUnicodeKey()) == WXK_NONE ) return false; #else if ( event.GetKeyCode() > WXK_START ) @@ -547,8 +547,7 @@ void wxGridCellTextEditor::StartingKey(wxKeyEvent& event) // a valid character, so not a whole lot of testing needs to be done. wxTextCtrl* tc = Text(); - wxChar ch; - long pos; + int ch; bool isPrintable; @@ -559,29 +558,28 @@ void wxGridCellTextEditor::StartingKey(wxKeyEvent& event) else #endif // wxUSE_UNICODE { - ch = (wxChar)event.GetKeyCode(); + ch = event.GetKeyCode(); isPrintable = ch >= WXK_SPACE && ch < WXK_START; } switch (ch) { case WXK_DELETE: - // delete the character at the cursor - pos = tc->GetInsertionPoint(); - if (pos < tc->GetLastPosition()) - tc->Remove(pos, pos + 1); + // Delete the initial character when starting to edit with DELETE. + tc->Remove(0, 1); break; case WXK_BACK: - // delete the character before the cursor - pos = tc->GetInsertionPoint(); - if (pos > 0) + // Delete the last character when starting to edit with BACKSPACE. + { + const long pos = tc->GetLastPosition(); tc->Remove(pos - 1, pos); + } break; default: if ( isPrintable ) - tc->WriteText(ch); + tc->WriteText(static_cast(ch)); break; } } @@ -1508,7 +1506,6 @@ void wxGridCellEnumEditor::BeginEdit(int row, int col, wxGrid* grid) } Combo()->SetSelection(m_index); - Combo()->SetInsertionPointEnd(); Combo()->SetFocus(); }