comparison dwt/graphics/TextLayout.d @ 246:f08216d53777

Fix merge bug in TextLayout
author Frank Benoit <benoit@tionex.de>
date Mon, 19 May 2008 17:08:39 +0200
parents ce446666f5a2
children 5a30aa9820f3
comparison
equal deleted inserted replaced
245:239b9a56bd5f 246:f08216d53777
75 int[] invalidOffsets; 75 int[] invalidOffsets;
76 // LTR_MARK LEFT-TO-RIGHT MARK 76 // LTR_MARK LEFT-TO-RIGHT MARK
77 // RTL_MARK RIGHT-TO-LEFT MARK 77 // RTL_MARK RIGHT-TO-LEFT MARK
78 // ZWS ZERO WIDTH SPACE 78 // ZWS ZERO WIDTH SPACE
79 // ZWNBS ZERO WIDTH NO-BREAK SPACE 79 // ZWNBS ZERO WIDTH NO-BREAK SPACE
80 static const dchar LTR_MARK = '\u200E', RTL_MARK = '\u200F', ZWS = '\u200B', ZWNBS = '\uFEFF'; 80 static const dchar LTR_MARK = '\u200E'; // x"E2 80 8E" LEFT-TO-RIGHT MARK
81 static const String STR_LTR_MARK = "\u200E", STR_RTL_MARK = "\u200F", STR_ZWS = "\u200B", STR_ZWNBS = "\uFEFF"; 81 static const dchar RTL_MARK = '\u200F'; // x"E2 80 8F" RIGHT-TO-LEFT MARK
82 static const dchar ZWS = '\u200B'; // x"E2 80 8B" ZERO WIDTH SPACE
83 static const dchar ZWNBS = '\uFEFF'; // x"EF BB BF" ZERO WIDTH NO-BREAK SPACE
84 static const String STR_LTR_MARK = "\u200E";
85 static const String STR_RTL_MARK = "\u200F";
86 static const String STR_ZWS = "\u200B";
87 static const String STR_ZWNBS = "\uFEFF";
82 88
83 /** 89 /**
84 * Constructs a new instance of this class on the given device. 90 * Constructs a new instance of this class on the given device.
85 * <p> 91 * <p>
86 * You must dispose the text layout when it is no longer required. 92 * You must dispose the text layout when it is no longer required.
157 chars[ oldPos + lineIndex*6 .. oldPos + lineIndex*6 + pos - oldPos ] = 163 chars[ oldPos + lineIndex*6 .. oldPos + lineIndex*6 + pos - oldPos ] =
158 segmentsText[ oldPos .. pos ]; 164 segmentsText[ oldPos .. pos ];
159 oldPos = pos; 165 oldPos = pos;
160 lineIndex++; 166 lineIndex++;
161 } 167 }
162 segmentsText.getChars(oldPos, segementsLength, chars, oldPos + lineIndex * 2); 168 segmentsText.getChars(oldPos, segementsLength, chars, oldPos + lineIndex * 6);
163 chars[ oldPos + lineIndex*6 .. oldPos + lineIndex*6 + segementsLength - oldPos ] =
164 segmentsText[ oldPos .. segementsLength ];
165 String buffer = chars;// Converter.wcsToMbcs(null, chars, false); 169 String buffer = chars;// Converter.wcsToMbcs(null, chars, false);
166 170
167 OS.pango_layout_set_text (layout, buffer.ptr, buffer.length); 171 OS.pango_layout_set_text (layout, buffer.ptr, buffer.length);
168 ptr = OS.pango_layout_get_text(layout); 172 ptr = OS.pango_layout_get_text(layout);
169 } else { 173 } else {