X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/94972183b9ba592cee3a48e7052b3b16d8794dec..cdbce971ecd2a3f39ddcc56c0ef7769663fbdf23:/src/msw/textctrl.cpp diff --git a/src/msw/textctrl.cpp b/src/msw/textctrl.cpp index 3f8402ded1..5c1fcdeacc 100644 --- a/src/msw/textctrl.cpp +++ b/src/msw/textctrl.cpp @@ -287,16 +287,17 @@ LRESULT APIENTRY _EXPORT wxTextCtrlWndProc(HWND hWnd, WPARAM wParam, LPARAM lParam) { - wxWindow *win = wxFindWinFromHandle((WXHWND)hWnd); - switch ( message ) { case WM_CUT: case WM_COPY: case WM_PASTE: - if( win->HandleClipboardEvent( message ) ) - return 0; - break; + { + wxWindow *win = wxFindWinFromHandle((WXHWND)hWnd); + if( win->HandleClipboardEvent( message ) ) + return 0; + break; + } } return ::CallWindowProc(CASTWNDPROC gs_wndprocEdit, hWnd, message, wParam, lParam); } @@ -1230,7 +1231,8 @@ void wxTextCtrl::SetInsertionPointEnd() // if it doesn't actually move the caret anywhere and so the simple fact of // doing it results in horrible flicker when appending big amounts of text // to the control in a few chunks (see DoAddText() test in the text sample) - if ( GetInsertionPoint() == GetLastPosition() ) + const wxTextPos lastPosition = GetLastPosition(); + if ( GetInsertionPoint() == lastPosition ) { return; } @@ -1246,7 +1248,7 @@ void wxTextCtrl::SetInsertionPointEnd() else // !RichEdit 1.0 #endif // wxUSE_RICHEDIT { - pos = GetLastPosition(); + pos = lastPosition; } SetInsertionPoint(pos); @@ -1809,7 +1811,7 @@ bool wxTextCtrl::MSWShouldPreProcessMessage(WXMSG* msg) // fall through case 0: - if ( vkey == VK_RETURN ) + if ( IsMultiLine() && vkey == VK_RETURN ) return false; // fall through case 2: