summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2009-08-04 21:46:03 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2009-08-04 21:46:03 (GMT)
commit5c94eccefc673baa9b8592afc9997cbf298a6399 (patch)
treedb565e5ec87041e2642b76334f286431fe3b2b4a
parent147857b0ccf20f9f973389eeb039f86d6bd7a16b (diff)
downloadtk-5c94eccefc673baa9b8592afc9997cbf298a6399.zip
tk-5c94eccefc673baa9b8592afc9997cbf298a6399.tar.gz
tk-5c94eccefc673baa9b8592afc9997cbf298a6399.tar.bz2
Fix word-wrapping of non-breaking spaces in the text widget to work reliably.
-rw-r--r--ChangeLog7
-rw-r--r--generic/tkTextDisp.c4
2 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 4ea12cb..7bd028c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2009-08-04 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tkTextDisp.c (TkTextCharLayoutProc): Make the line breaking
+ algorithm (in the word-wrap case) do the right thing with non-breaking
+ spaces by restricting what we break on to ASCII spaces, which is good
+ enough for most purposes.
+
2009-08-01 Donal K. Fellows <dkf@users.sf.net>
* unix/tkUnixWm.c (WmIconphotoCmd): [Bug 2830420]: Assemble the image
diff --git a/generic/tkTextDisp.c b/generic/tkTextDisp.c
index c8c8606..8477739 100644
--- a/generic/tkTextDisp.c
+++ b/generic/tkTextDisp.c
@@ -12,7 +12,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkTextDisp.c,v 1.68 2007/12/13 15:24:17 dgp Exp $
+ * RCS: @(#) $Id: tkTextDisp.c,v 1.68.2.1 2009/08/04 21:46:03 dkf Exp $
*/
#include "tkInt.h"
@@ -7209,7 +7209,7 @@ TkTextCharLayoutProc(
} else {
for (count = bytesThatFit, p += bytesThatFit - 1; count > 0;
count--, p--) {
- if (isspace(UCHAR(*p))) {
+ if (UCHAR(*p) < 0x80 && isspace(UCHAR(*p))) {
chunkPtr->breakIndex = count;
break;
}