]> git.saurik.com Git - wxWidgets.git/commitdiff
Fix calculation of the wxStyledTextCtrl selection size.
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 23 May 2012 21:16:24 +0000 (21:16 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 23 May 2012 21:16:24 +0000 (21:16 +0000)
Use SCI_GETSELTEXT to compute the size of the buffer instead of doing it
ourselves, especially as we do it incorrectly in case of rectangular
selection.

Closes #14331.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71540 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/stc/stc.cpp
src/stc/stc.cpp.in

index cc580a1ff3eeab29a3b467734bc760cbcb6a80d5..b5d71eebbe7e41308b72a66b609a92ece70606e7 100644 (file)
@@ -4128,16 +4128,10 @@ wxCharBuffer wxStyledTextCtrl::GetLineRaw(int line)
 
 wxCharBuffer wxStyledTextCtrl::GetSelectedTextRaw()
 {
-    long   start;
-    long   end;
-
-    GetSelection(&start, &end);
-    int   len  = end - start;
-    if (!len) {
-        wxCharBuffer empty;
-        return empty;
-    }
+    // Calculate the length needed first.
+    const int len = SendMsg(SCI_GETSELTEXT, 0, (sptr_t)0);
 
+    // And then really get the data.
     wxCharBuffer buf(len);
     SendMsg(SCI_GETSELTEXT, 0, (sptr_t)buf.data());
     return buf;
index 70f3646ae948ef18e987f68acd376057aaa2d563..10ceabad07057ed48f0bbae89a9a0f77c01a2e8a 100644 (file)
@@ -628,16 +628,10 @@ wxCharBuffer wxStyledTextCtrl::GetLineRaw(int line)
 
 wxCharBuffer wxStyledTextCtrl::GetSelectedTextRaw()
 {
-    long   start;
-    long   end;
-
-    GetSelection(&start, &end);
-    int   len  = end - start;
-    if (!len) {
-        wxCharBuffer empty;
-        return empty;
-    }
+    // Calculate the length needed first.
+    const int len = SendMsg(SCI_GETSELTEXT, 0, (sptr_t)0);
 
+    // And then really get the data.
     wxCharBuffer buf(len);
     SendMsg(SCI_GETSELTEXT, 0, (sptr_t)buf.data());
     return buf;