X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/57ff8a875bff6f8ba8a6616ed7095b74a835c622..90985bdec4928a4d990bda0d88eec5a6a54ff1be:/src/os2/textctrl.cpp

diff --git a/src/os2/textctrl.cpp b/src/os2/textctrl.cpp
index 3b2b97719a..679d0fa248 100644
--- a/src/os2/textctrl.cpp
+++ b/src/os2/textctrl.cpp
@@ -507,6 +507,15 @@ void wxTextCtrl::SetInsertionPointEnd()
 {
     long                            lPos = GetLastPosition();
 
+    //
+    // We must not do anything if the caret is already there because calling
+    // SetInsertionPoint() thaws the controls if Freeze() had been called even
+    // 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())
+        return;
     SetInsertionPoint(lPos);
 } // end of wxTextCtrl::SetInsertionPointEnd