[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: =?utf-8?q?=5Bkdelibs=5D_khtml/rendering=3A_Include_trailing_punc?=
From: Maks Orlovich <maksim () kde ! org>
Date: 2011-03-18 1:33:29
Message-ID: 20110318013329.23580A60C6 () git ! kde ! org
[Download RAW message or body]
Git commit 3309a1dcf1667d28e2d532e9017d770978c3b734 by Maks Orlovich.
Committed on 21/02/2011 at 18:39.
Pushed by orlovich into branch 'master'.
Include trailing punctuation in :first-letter
(Also follow CSS's definition of punctuation)
BUG: 197455
M +13 -3 khtml/rendering/render_block.cpp
http://commits.kde.org/kdelibs/3309a1dcf1667d28e2d532e9017d770978c3b734
diff --git a/khtml/rendering/render_block.cpp b/khtml/rendering/render_block.cpp
index f9c718e..2172b3b 100644
--- a/khtml/rendering/render_block.cpp
+++ b/khtml/rendering/render_block.cpp
@@ -160,6 +160,16 @@ void RenderBlock::attach()
updatePseudoChildren();
}
+static inline bool isFirstLetterPunct(const QChar* c) {
+ // CSS2.1/3 definition for ::first-letter doesn't include Pc or Pd.
+ if (c->isPunct()) {
+ QChar::Category cat = c->category();
+ return cat != QChar::Punctuation_Connector &&
+ cat != QChar::Punctuation_Dash;
+ }
+ return false;
+}
+
void RenderBlock::updateFirstLetter()
{
// Only blocks with inline-children can generate a first-letter
@@ -240,12 +250,12 @@ void RenderBlock::updateFirstLetter()
length++;
begin = length;
while ( length < oldText->l &&
- ( (oldText->s+length)->isPunct() || (oldText->s+length)->isSpace() ))
+ ( isFirstLetterPunct(oldText->s+length) || (oldText->s+length)->isSpace() ))
length++;
if ( length < oldText->l &&
- !( (oldText->s+length)->isSpace() || (oldText->s+length)->isPunct() ))
+ !( (oldText->s+length)->isSpace() || isFirstLetterPunct(oldText->s+length) ))
length++;
- while ( length < oldText->l && (oldText->s+length)->isMark() )
+ while ( length < oldText->l && isFirstLetterPunct(oldText->s+length) )
length++;
// we need to generated a remainingText object even if no text is left
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic