[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: extragear/multimedia/kmplayer/src
From: Koos Vriezen <koos.vriezen () gmail ! com>
Date: 2011-10-04 21:58:12
Message-ID: 20111004215812.8BFDEAC888 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1257353 by vriezen:
Handle smilText inline text blocks
Also fix the horizontal alignment
M +9 -5 viewarea.cpp
--- trunk/extragear/multimedia/kmplayer/src/viewarea.cpp #1257352:1257353
@@ -1082,11 +1082,11 @@
}
void SmilTextVisitor::visit (SMIL::TextFlow *flow) {
- if (flow->firstChild ()) {
bool new_block = SMIL::id_node_p == flow->id ||
SMIL::id_node_br == flow->id ||
SMIL::id_node_div == flow->id;
- float fs = info.props.font_size;
+ if ((new_block && !rich_text.isEmpty ()) || flow->firstChild ()) {
+ float fs = info.props.font_size.size ();
if (fs < 0)
fs = TextMedia::defaultFontSize ();
int par_extra = SMIL::id_node_p == flow->id
@@ -1102,11 +1102,12 @@
max_font_size = info.props.font_size.size ();
info.span (scale);
+ if (flow->firstChild ())
flow->firstChild ()->accept (this);
if (rich_text.isEmpty ())
par_extra = 0;
- if (new_block)
+ if (new_block && flow->firstChild ())
push ();
voffset += par_extra;
@@ -1139,9 +1140,10 @@
CAIRO_SET_SOURCE_RGB (cr_txt, 0);
SmilTextBlock *b = info.first;
+ int hoff = 0;
int voff = 0;
while (b) {
- cairo_translate (cr_txt, 0, b->rect.y() - voff);
+ cairo_translate (cr_txt, b->rect.x() - hoff, b->rect.y() - voff);
QTextDocument td;
td.setDocumentMargin (0);
td.setDefaultFont (b->font);
@@ -1167,10 +1169,12 @@
cairo_pattern_set_extend (pat, CAIRO_EXTEND_NONE);
cairo_set_operator (cr_txt, CAIRO_OPERATOR_SOURCE);
cairo_set_source (cr_txt, pat);
- cairo_paint (cr_txt);
+ cairo_rectangle (cr_txt, 0, 0, b->rect.width(), b->rect.height());
+ cairo_fill (cr_txt);
cairo_pattern_destroy (pat);
cairo_surface_destroy (src_sf);
+ hoff = b->rect.x ();
voff = b->rect.y ();
SmilTextBlock *tmp = b;
b = b->next;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic