Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(829)

Side by Side Diff: Source/core/layout/LayoutListMarker.cpp

Issue 1184433004: Implement chinese counter styles (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fix test expectation Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Source/core/css/CSSValueKeywords.in ('k') | Source/core/paint/ListMarkerPainter.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserv ed. 4 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserv ed.
5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net) 5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net)
6 * Copyright (C) 2010 Daniel Bates (dbates@intudata.com) 6 * Copyright (C) 2010 Daniel Bates (dbates@intudata.com)
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after
310 static const UChar georgianOnes[9] = { 310 static const UChar georgianOnes[9] = {
311 0x10D0, 0x10D1, 0x10D2, 0x10D3, 0x10D4, 0x10D5, 0x10D6, 0x10F1, 0x10 D7 311 0x10D0, 0x10D1, 0x10D2, 0x10D3, 0x10D4, 0x10D5, 0x10D6, 0x10F1, 0x10 D7
312 }; 312 };
313 letters[length++] = georgianOnes[ones - 1]; 313 letters[length++] = georgianOnes[ones - 1];
314 } 314 }
315 315
316 ASSERT(length <= lettersSize); 316 ASSERT(length <= lettersSize);
317 return String(letters, length); 317 return String(letters, length);
318 } 318 }
319 319
320 enum CJKLang {
321 Chinese = 1,
322 Korean,
323 Japanese
324 };
325
326 enum CJKStyle {
327 Formal,
328 Informal
329 };
330
320 // The table uses the order from the CSS3 specification: 331 // The table uses the order from the CSS3 specification:
321 // first 3 group markers, then 3 digit markers, then ten digits, then negative s ymbols. 332 // first 3 group markers, then 3 digit markers, then ten digits, then negative s ymbols.
322 static String toCJKIdeographic(int number, const UChar table[23]) 333 static String toCJKIdeographic(int number, const UChar table[26], CJKStyle cjkSt yle)
323 { 334 {
324 enum AbstractCJKChar { 335 enum AbstractCJKChar {
325 NoChar = 0, 336 NoChar = 0,
326 Lang = 0, 337 Lang = 0,
327 SecondGroupMarker, ThirdGroupMarker, FourthGroupMarker, 338 SecondGroupMarker = 1, ThirdGroupMarker = 3, FourthGroupMarker = 5,
tkent 2015/06/22 01:14:14 Please add a comment about 2, 4, and 6.
328 SecondDigitMarker, ThirdDigitMarker, FourthDigitMarker, 339 SecondDigitMarker = 7, ThirdDigitMarker, FourthDigitMarker,
329 Digit0, Digit1, Digit2, Digit3, Digit4, 340 Digit0, Digit1, Digit2, Digit3, Digit4,
330 Digit5, Digit6, Digit7, Digit8, Digit9, 341 Digit5, Digit6, Digit7, Digit8, Digit9,
331 Neg1, Neg2, Neg3, Neg4, Neg5 342 Neg1, Neg2, Neg3, Neg4, Neg5
332 }; 343 };
333 344
334 enum CJKLang {
335 Chinese = 1,
336 Korean,
337 Japanese
338 };
339
340 if (number == 0) 345 if (number == 0)
341 return String(&table[Digit0], 1); 346 return String(&table[Digit0], 1);
342 347
343 const bool negative = number < 0; 348 const bool negative = number < 0;
344 if (negative) 349 if (negative)
345 number = -number; 350 number = -number;
346 351
347 const int groupLength = 8; // 4 digits, 3 digit markers, and a group marker 352 const int groupLength = 9; // 4 digits, 3 digit markers, and a group marker
tkent 2015/06/22 01:14:14 Please update the comment
348 const int bufferLength = 4 * groupLength; 353 const int bufferLength = 4 * groupLength;
349 AbstractCJKChar buffer[bufferLength] = { NoChar }; 354 AbstractCJKChar buffer[bufferLength] = { NoChar };
350 355
351 for (int i = 0; i < 4; ++i) { 356 for (int i = 0; i < 4; ++i) {
352 int groupValue = number % 10000; 357 int groupValue = number % 10000;
353 number /= 10000; 358 number /= 10000;
354 359
355 // Process least-significant group first, but put it in the buffer last. 360 // Process least-significant group first, but put it in the buffer last.
356 AbstractCJKChar* group = &buffer[(3 - i) * groupLength]; 361 AbstractCJKChar* group = &buffer[(3 - i) * groupLength];
357 362
358 if (groupValue && i) 363 if (groupValue && i) {
364 group[8] = static_cast<AbstractCJKChar>(SecondGroupMarker + i);
359 group[7] = static_cast<AbstractCJKChar>(SecondGroupMarker - 1 + i); 365 group[7] = static_cast<AbstractCJKChar>(SecondGroupMarker - 1 + i);
366 }
360 367
361 // Put in the four digits and digit markers for any non-zero digits. 368 // Put in the four digits and digit markers for any non-zero digits.
362 int digitValue = (groupValue % 10); 369 int digitValue = (groupValue % 10);
363 bool trailingZero = table[Lang] == Chinese && !digitValue; 370 bool trailingZero = table[Lang] == Chinese && !digitValue;
364 if (digitValue) 371 if (digitValue)
365 group[6] = static_cast<AbstractCJKChar>(Digit0 + (groupValue % 10)); 372 group[6] = static_cast<AbstractCJKChar>(Digit0 + (groupValue % 10));
366 if (number != 0 || groupValue > 9) { 373 if (number != 0 || groupValue > 9) {
367 digitValue = ((groupValue / 10) % 10); 374 digitValue = ((groupValue / 10) % 10);
368 if (digitValue || !trailingZero) 375 if (digitValue || !trailingZero)
369 group[4] = static_cast<AbstractCJKChar>(Digit0 + digitValue); 376 group[4] = static_cast<AbstractCJKChar>(Digit0 + digitValue);
(...skipping 12 matching lines...) Expand all
382 if (number != 0 || groupValue > 999) { 389 if (number != 0 || groupValue > 999) {
383 digitValue = groupValue / 1000; 390 digitValue = groupValue / 1000;
384 if (digitValue || !trailingZero) 391 if (digitValue || !trailingZero)
385 group[0] = static_cast<AbstractCJKChar>(Digit0 + digitValue); 392 group[0] = static_cast<AbstractCJKChar>(Digit0 + digitValue);
386 if (digitValue) 393 if (digitValue)
387 group[1] = FourthDigitMarker; 394 group[1] = FourthDigitMarker;
388 } 395 }
389 396
390 if (trailingZero && i > 0) { 397 if (trailingZero && i > 0) {
391 group[6] = group[7]; 398 group[6] = group[7];
392 group[7] = Digit0; 399 group[7] = group[8];
400 group[8] = Digit0;
393 } 401 }
394 402
395 // Remove the tens digit, but leave the marker, for any group that has 403 // Remove the tens digit, but leave the marker, for any group that has
396 // a value of less than 20. 404 // a value of less than 20.
397 if (table[Lang] == Chinese && groupValue < 20) { 405 if (table[Lang] == Chinese && cjkStyle == Informal && groupValue < 20) {
398 ASSERT(group[4] == NoChar || group[4] == Digit0 || group[4] == Digit 1); 406 ASSERT(group[4] == NoChar || group[4] == Digit0 || group[4] == Digit 1);
399 group[4] = NoChar; 407 group[4] = NoChar;
400 } 408 }
401 409
402 if (number == 0) 410 if (number == 0)
403 break; 411 break;
404 } 412 }
405 413
406 // Convert into characters, omitting consecutive runs of Digit0 and 414 // Convert into characters, omitting consecutive runs of Digit0 and
407 // any trailing Digit0. 415 // any trailing Digit0.
408 int length = 0; 416 int length = 0;
409 const int maxLengthForNegativeSymbols = 5; 417 const int maxLengthForNegativeSymbols = 5;
410 UChar characters[bufferLength + maxLengthForNegativeSymbols]; 418 UChar characters[bufferLength + maxLengthForNegativeSymbols];
411 AbstractCJKChar last = NoChar; 419 AbstractCJKChar last = NoChar;
412 if (negative) { 420 if (negative) {
413 while (UChar a = table[Neg1 + length]) 421 while (UChar a = table[Neg1 + length])
414 characters[length++] = a; 422 characters[length++] = a;
415 } 423 }
416 for (int i = 0; i < bufferLength; ++i) { 424 for (int i = 0; i < bufferLength; ++i) {
417 AbstractCJKChar a = buffer[i]; 425 AbstractCJKChar a = buffer[i];
418 if (a != NoChar) { 426 if (a != NoChar) {
419 if (a != Digit0 || (table[Lang] == Chinese && last != Digit0)) { 427 if (a != Digit0 || (table[Lang] == Chinese && last != Digit0)) {
420 characters[length++] = table[a]; 428 UChar newChar = table[a];
421 if (table[Lang] == Korean && a >= SecondGroupMarker && a <= Four thGroupMarker) 429 if (newChar != NoChar) {
422 characters[length++] = ' '; 430 characters[length++] = table[a];
431 if (table[Lang] == Korean && (a == SecondGroupMarker || a == ThirdGroupMarker || a == FourthGroupMarker))
432 characters[length++] = ' ';
433 }
423 } 434 }
424 last = a; 435 last = a;
425 } 436 }
426 } 437 }
427 if ((table[Lang] == Chinese && last == Digit0) || characters[length - 1] == ' ') 438 if ((table[Lang] == Chinese && last == Digit0) || characters[length - 1] == ' ')
428 --length; 439 --length;
429 440
430 return String(characters, length); 441 return String(characters, length);
431 } 442 }
432 443
(...skipping 21 matching lines...) Expand all
454 case NoneListStyle: 465 case NoneListStyle:
455 case Oriya: 466 case Oriya:
456 case Persian: 467 case Persian:
457 case Square: 468 case Square:
458 case Telugu: 469 case Telugu:
459 case Thai: 470 case Thai:
460 case Tibetan: 471 case Tibetan:
461 case Urdu: 472 case Urdu:
462 case KoreanHangulFormal: 473 case KoreanHangulFormal:
463 case CJKIdeographic: 474 case CJKIdeographic:
475 case SimpChineseFormal:
476 case SimpChineseInformal:
477 case TradChineseFormal:
478 case TradChineseInformal:
464 return type; // Can represent all ordinals. 479 return type; // Can represent all ordinals.
465 case Armenian: 480 case Armenian:
466 return (value < 1 || value > 99999999) ? DecimalListStyle : type; 481 return (value < 1 || value > 99999999) ? DecimalListStyle : type;
467 case Georgian: 482 case Georgian:
468 return (value < 1 || value > 19999) ? DecimalListStyle : type; 483 return (value < 1 || value > 19999) ? DecimalListStyle : type;
469 case Hebrew: 484 case Hebrew:
470 return (value < 0 || value > 999999) ? DecimalListStyle : type; 485 return (value < 0 || value > 999999) ? DecimalListStyle : type;
471 case LowerRoman: 486 case LowerRoman:
472 case UpperRoman: 487 case UpperRoman:
473 return (value < 1 || value > 3999) ? DecimalListStyle : type; 488 return (value < 1 || value > 3999) ? DecimalListStyle : type;
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
551 case Persian: 566 case Persian:
552 case Telugu: 567 case Telugu:
553 case Thai: 568 case Thai:
554 case Tibetan: 569 case Tibetan:
555 case UpperAlpha: 570 case UpperAlpha:
556 case UpperArmenian: 571 case UpperArmenian:
557 case UpperLatin: 572 case UpperLatin:
558 case UpperRoman: 573 case UpperRoman:
559 case Urdu: 574 case Urdu:
560 return '.'; 575 return '.';
576 case SimpChineseFormal:
577 case SimpChineseInformal:
578 case TradChineseFormal:
579 case TradChineseInformal:
561 case KoreanHangulFormal: 580 case KoreanHangulFormal:
562 return ','; 581 return 0x3001;
563 } 582 }
564 583
565 ASSERT_NOT_REACHED(); 584 ASSERT_NOT_REACHED();
566 return '.'; 585 return '.';
567 } 586 }
568 587
569 String listMarkerText(EListStyleType type, int value) 588 String listMarkerText(EListStyleType type, int value)
570 { 589 {
571 // If the list-style-type, say hebrew, cannot represent |value| because it's outside 590 // If the list-style-type, say hebrew, cannot represent |value| because it's outside
572 // its ordinal range then we fallback to some list style that can represent |value|. 591 // its ordinal range then we fallback to some list style that can represent |value|.
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
828 case EthiopicHalehameTiEt: { 847 case EthiopicHalehameTiEt: {
829 static const UChar ethiopicHalehameTiEtAlphabet[34] = { 848 static const UChar ethiopicHalehameTiEtAlphabet[34] = {
830 0x1200, 0x1208, 0x1210, 0x1218, 0x1220, 0x1228, 0x1230, 0x1238, 0x12 40, 849 0x1200, 0x1208, 0x1210, 0x1218, 0x1220, 0x1228, 0x1230, 0x1238, 0x12 40,
831 0x1250, 0x1260, 0x1270, 0x1278, 0x1280, 0x1290, 0x1298, 0x12A0, 0x12 A8, 850 0x1250, 0x1260, 0x1270, 0x1278, 0x1280, 0x1290, 0x1298, 0x12A0, 0x12 A8,
832 0x12B8, 0x12C8, 0x12D0, 0x12D8, 0x12E0, 0x12E8, 0x12F0, 0x1300, 0x13 08, 851 0x12B8, 0x12C8, 0x12D0, 0x12D8, 0x12E0, 0x12E8, 0x12F0, 0x1300, 0x13 08,
833 0x1320, 0x1328, 0x1330, 0x1338, 0x1340, 0x1348, 0x1350 852 0x1320, 0x1328, 0x1330, 0x1338, 0x1340, 0x1348, 0x1350
834 }; 853 };
835 return toAlphabetic(value, ethiopicHalehameTiEtAlphabet); 854 return toAlphabetic(value, ethiopicHalehameTiEtAlphabet);
836 } 855 }
837 case KoreanHangulFormal: { 856 case KoreanHangulFormal: {
838 static const UChar koreanHangulFormalTable[23] = { 857 static const UChar koreanHangulFormalTable[26] = {
839 0x2, 858 Korean,
840 0xB9CC, 0xC5B5, 0xC870, 859 0xB9CC, 0x0000, 0xC5B5, 0x0000, 0xC870, 0x0000,
841 0xC2ED, 0xBC31, 0xCC9C, 860 0xC2ED, 0xBC31, 0xCC9C,
842 0xC601, 0xC77C, 0xC774, 0xC0BC, 0xC0AC, 861 0xC601, 0xC77C, 0xC774, 0xC0BC, 0xC0AC,
843 0xC624, 0xC721, 0xCE60, 0xD314, 0xAD6C, 862 0xC624, 0xC721, 0xCE60, 0xD314, 0xAD6C,
844 0xB9C8, 0xC774, 0xB108, 0xC2A4, 0x0020, 0x0000 863 0xB9C8, 0xC774, 0xB108, 0xC2A4, 0x0020, 0x0000
845 }; 864 };
846 return toCJKIdeographic(value, koreanHangulFormalTable); 865 return toCJKIdeographic(value, koreanHangulFormalTable, Formal);
847 } 866 }
848 case CJKIdeographic: { 867 case CJKIdeographic:
849 static const UChar traditionalChineseInformalTable[19] = { 868 case TradChineseInformal: {
850 0x1, 869 static const UChar traditionalChineseInformalTable[22] = {
851 0x842C, 0x5104, 0x5146, 870 Chinese,
871 0x842C, 0x0000, 0x5104, 0x0000, 0x5146, 0x0000,
852 0x5341, 0x767E, 0x5343, 872 0x5341, 0x767E, 0x5343,
853 0x96F6, 0x4E00, 0x4E8C, 0x4E09, 0x56DB, 873 0x96F6, 0x4E00, 0x4E8C, 0x4E09, 0x56DB,
854 0x4E94, 0x516D, 0x4E03, 0x516B, 0x4E5D, 874 0x4E94, 0x516D, 0x4E03, 0x516B, 0x4E5D,
855 0x8CA0, 0x0000 875 0x8CA0, 0x0000
856 }; 876 };
857 return toCJKIdeographic(value, traditionalChineseInformalTable); 877 return toCJKIdeographic(value, traditionalChineseInformalTable, Informal );
878 }
879 case SimpChineseInformal: {
880 static const UChar simpleChineseInformalTable[22] = {
881 Chinese,
882 0x4E07, 0x0000, 0x4EBF, 0x0000, 0x4E07, 0x4EBF,
883 0x5341, 0x767E, 0x5343,
884 0x96F6, 0x4E00, 0x4E8C, 0x4E09, 0x56DB,
885 0x4E94, 0x516D, 0x4E03, 0x516B, 0x4E5D,
886 0x8D1F, 0x0000
887 };
888 return toCJKIdeographic(value, simpleChineseInformalTable, Informal);
889 }
890 case TradChineseFormal: {
891 static const UChar traditionalChineseFormalTable[22] = {
892 Chinese,
893 0x842C, 0x0000, 0x5104, 0x0000, 0x5146, 0x0000,
894 0x62FE, 0x4F70, 0x4EDF,
895 0x96F6, 0x58F9, 0x8CB3, 0x53C3, 0x8086,
896 0x4F0D, 0x9678, 0x67D2, 0x634C, 0x7396,
897 0x8CA0, 0x0000
898 };
899 return toCJKIdeographic(value, traditionalChineseFormalTable, Formal);
900 }
901 case SimpChineseFormal: {
902 static const UChar simpleChineseFormalTable[22] = {
903 Chinese,
904 0x4E07, 0x0000, 0x4EBF, 0x0000, 0x4E07, 0x4EBF,
905 0x62FE, 0x4F70, 0x4EDF,
906 0x96F6, 0x58F9, 0x8D30, 0x53C1, 0x8086,
907 0x4F0D, 0x9646, 0x67D2, 0x634C, 0x7396,
908 0x8D1F, 0x0000
909 };
910 return toCJKIdeographic(value, simpleChineseFormalTable, Formal);
858 } 911 }
859 912
860 case LowerRoman: 913 case LowerRoman:
861 return toRoman(value, false); 914 return toRoman(value, false);
862 case UpperRoman: 915 case UpperRoman:
863 return toRoman(value, true); 916 return toRoman(value, true);
864 917
865 case Armenian: 918 case Armenian:
866 case UpperArmenian: 919 case UpperArmenian:
867 // CSS3 says "armenian" means "lower-armenian". 920 // CSS3 says "armenian" means "lower-armenian".
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
1062 case LowerAlpha: 1115 case LowerAlpha:
1063 case LowerArmenian: 1116 case LowerArmenian:
1064 case LowerGreek: 1117 case LowerGreek:
1065 case LowerLatin: 1118 case LowerLatin:
1066 case LowerRoman: 1119 case LowerRoman:
1067 case Malayalam: 1120 case Malayalam:
1068 case Mongolian: 1121 case Mongolian:
1069 case Myanmar: 1122 case Myanmar:
1070 case Oriya: 1123 case Oriya:
1071 case Persian: 1124 case Persian:
1125 case SimpChineseFormal:
1126 case SimpChineseInformal:
1072 case Telugu: 1127 case Telugu:
1073 case Thai: 1128 case Thai:
1074 case Tibetan: 1129 case Tibetan:
1130 case TradChineseFormal:
1131 case TradChineseInformal:
1075 case UpperAlpha: 1132 case UpperAlpha:
1076 case UpperArmenian: 1133 case UpperArmenian:
1077 case UpperLatin: 1134 case UpperLatin:
1078 case UpperRoman: 1135 case UpperRoman:
1079 case Urdu: 1136 case Urdu:
1080 m_text = listMarkerText(type, m_listItem->value()); 1137 m_text = listMarkerText(type, m_listItem->value());
1081 break; 1138 break;
1082 } 1139 }
1083 } 1140 }
1084 1141
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1138 case LowerAlpha: 1195 case LowerAlpha:
1139 case LowerArmenian: 1196 case LowerArmenian:
1140 case LowerGreek: 1197 case LowerGreek:
1141 case LowerLatin: 1198 case LowerLatin:
1142 case LowerRoman: 1199 case LowerRoman:
1143 case Malayalam: 1200 case Malayalam:
1144 case Mongolian: 1201 case Mongolian:
1145 case Myanmar: 1202 case Myanmar:
1146 case Oriya: 1203 case Oriya:
1147 case Persian: 1204 case Persian:
1205 case SimpChineseFormal:
1206 case SimpChineseInformal:
1148 case Telugu: 1207 case Telugu:
1149 case Thai: 1208 case Thai:
1150 case Tibetan: 1209 case Tibetan:
1210 case TradChineseFormal:
1211 case TradChineseInformal:
1151 case UpperAlpha: 1212 case UpperAlpha:
1152 case UpperArmenian: 1213 case UpperArmenian:
1153 case UpperLatin: 1214 case UpperLatin:
1154 case UpperRoman: 1215 case UpperRoman:
1155 case Urdu: 1216 case Urdu:
1156 if (m_text.isEmpty()) { 1217 if (m_text.isEmpty()) {
1157 logicalWidth = 0; 1218 logicalWidth = 0;
1158 } else { 1219 } else {
1159 LayoutUnit itemWidth = font.width(m_text); 1220 LayoutUnit itemWidth = font.width(m_text);
1160 UChar suffixSpace[2] = { listMarkerSuffix(type, m_listItem->value()) , ' ' }; 1221 UChar suffixSpace[2] = { listMarkerSuffix(type, m_listItem->value()) , ' ' };
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
1310 case LowerAlpha: 1371 case LowerAlpha:
1311 case LowerArmenian: 1372 case LowerArmenian:
1312 case LowerGreek: 1373 case LowerGreek:
1313 case LowerLatin: 1374 case LowerLatin:
1314 case LowerRoman: 1375 case LowerRoman:
1315 case Malayalam: 1376 case Malayalam:
1316 case Mongolian: 1377 case Mongolian:
1317 case Myanmar: 1378 case Myanmar:
1318 case Oriya: 1379 case Oriya:
1319 case Persian: 1380 case Persian:
1381 case SimpChineseFormal:
1382 case SimpChineseInformal:
1320 case Telugu: 1383 case Telugu:
1321 case Thai: 1384 case Thai:
1322 case Tibetan: 1385 case Tibetan:
1386 case TradChineseFormal:
1387 case TradChineseInformal:
1323 case UpperAlpha: 1388 case UpperAlpha:
1324 case UpperArmenian: 1389 case UpperArmenian:
1325 case UpperLatin: 1390 case UpperLatin:
1326 case UpperRoman: 1391 case UpperRoman:
1327 case Urdu: 1392 case Urdu:
1328 if (m_text.isEmpty()) 1393 if (m_text.isEmpty())
1329 return IntRect(); 1394 return IntRect();
1330 const Font& font = style()->font(); 1395 const Font& font = style()->font();
1331 int itemWidth = font.width(m_text); 1396 int itemWidth = font.width(m_text);
1332 UChar suffixSpace[2] = { listMarkerSuffix(type, m_listItem->value()), ' ' }; 1397 UChar suffixSpace[2] = { listMarkerSuffix(type, m_listItem->value()), ' ' };
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1376 if (style()) { 1441 if (style()) {
1377 // Reuse the current margins. Otherwise resetting the margins to initial values 1442 // Reuse the current margins. Otherwise resetting the margins to initial values
1378 // would trigger unnecessary layout. 1443 // would trigger unnecessary layout.
1379 newStyle->setMarginStart(style()->marginStart()); 1444 newStyle->setMarginStart(style()->marginStart());
1380 newStyle->setMarginEnd(style()->marginRight()); 1445 newStyle->setMarginEnd(style()->marginRight());
1381 } 1446 }
1382 setStyle(newStyle.release()); 1447 setStyle(newStyle.release());
1383 } 1448 }
1384 1449
1385 } // namespace blink 1450 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/css/CSSValueKeywords.in ('k') | Source/core/paint/ListMarkerPainter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698