From 2fa986aa670bee0fafb30241f40bb3556594e32b Mon Sep 17 00:00:00 2001 From: Jiang Jiang Date: Tue, 26 Jul 2011 16:03:37 +0200 Subject: Include trailing space width in RTL text line width Task-number: QTBUG-15511 Reviewed-by: Eskil --- src/gui/text/qtextlayout.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gui/text/qtextlayout.cpp b/src/gui/text/qtextlayout.cpp index 3f0b9e8..05b1d08 100644 --- a/src/gui/text/qtextlayout.cpp +++ b/src/gui/text/qtextlayout.cpp @@ -1917,8 +1917,12 @@ found: if (line.textWidth > 0 && item < eng->layoutData->items.size()) eng->maxWidth += lbh.spaceData.textWidth; - if (eng->option.flags() & QTextOption::IncludeTrailingSpaces) + // In the latter case, text are drawn with trailing spaces at the beginning + // of a line, so the naturalTextWidth should contain the space width + if ((eng->option.flags() & QTextOption::IncludeTrailingSpaces) || + (line.width == QFIXED_MAX && eng->isRightToLeft())) { line.textWidth += lbh.spaceData.textWidth; + } if (lbh.spaceData.length) { line.length += lbh.spaceData.length; line.hasTrailingSpaces = true; -- cgit v0.12 From 07565b925cb92f9d28ae4586f112e0ed52d2c451 Mon Sep 17 00:00:00 2001 From: Nikolaos Korkakakis Date: Tue, 26 Jul 2011 16:32:46 +0200 Subject: OpenVG cleanup. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changes needed to reflect the updates in the QWindowSurface. Merge-request: 1309 Reviewed-by: Samuel Rødal --- src/openvg/qwindowsurface_vg.cpp | 7 +++++++ src/openvg/qwindowsurface_vg_p.h | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/src/openvg/qwindowsurface_vg.cpp b/src/openvg/qwindowsurface_vg.cpp index 778e14c..2935316 100644 --- a/src/openvg/qwindowsurface_vg.cpp +++ b/src/openvg/qwindowsurface_vg.cpp @@ -93,10 +93,17 @@ void QVGWindowSurface::flush(QWidget *widget, const QRegion ®ion, const QPoin d_ptr->endPaint(parent, region); } +#if !defined(Q_WS_QPA) void QVGWindowSurface::setGeometry(const QRect &rect) { QWindowSurface::setGeometry(rect); } +#else +void QVGWindowSurface::resize(const QSize &size) +{ + QWindowSurface::resize(size); +} +#endif //!Q_WS_QPA bool QVGWindowSurface::scroll(const QRegion &area, int dx, int dy) { diff --git a/src/openvg/qwindowsurface_vg_p.h b/src/openvg/qwindowsurface_vg_p.h index 4ce73eb..b5c6da3 100644 --- a/src/openvg/qwindowsurface_vg_p.h +++ b/src/openvg/qwindowsurface_vg_p.h @@ -70,7 +70,13 @@ public: QPaintDevice *paintDevice(); void flush(QWidget *widget, const QRegion ®ion, const QPoint &offset); + +#if !defined(Q_WS_QPA) void setGeometry(const QRect &rect); +#else + void resize(const QSize &size); +#endif + bool scroll(const QRegion &area, int dx, int dy); void beginPaint(const QRegion ®ion); -- cgit v0.12