From 4b649e746a4c48aa6af115eb6af42a49c0e48115 Mon Sep 17 00:00:00 2001 From: Abdelrazak Younes Date: Tue, 25 Sep 2007 07:07:11 +0000 Subject: [PATCH] Fix drawing of horizontal line and page break. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20480 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/insets/InsetLine.cpp | 5 ++++- src/insets/InsetPagebreak.cpp | 8 ++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/insets/InsetLine.cpp b/src/insets/InsetLine.cpp index 379e1ed20f..316c9e5d8d 100644 --- a/src/insets/InsetLine.cpp +++ b/src/insets/InsetLine.cpp @@ -46,12 +46,15 @@ void InsetLine::metrics(MetricsInfo & mi, Dimension & dim) const dim.asc = 3; dim.des = 3; dim.wid = mi.base.textwidth; + // Cache the inset dimension. + setDimCache(mi, dim); } void InsetLine::draw(PainterInfo & pi, int x, int y) const { - pi.pain.line(x, y, x + pi.base.textwidth, y, Color::topline, + Dimension const dim = dimension(*pi.base.bv); + pi.pain.line(x, y, x + dim.wid, y, Color::topline, Painter::line_solid, Painter::line_thick); } diff --git a/src/insets/InsetPagebreak.cpp b/src/insets/InsetPagebreak.cpp index 37f1123ef7..0ee79aa6c2 100644 --- a/src/insets/InsetPagebreak.cpp +++ b/src/insets/InsetPagebreak.cpp @@ -46,6 +46,8 @@ void InsetPagebreak::metrics(MetricsInfo & mi, Dimension & dim) const dim.asc = defaultRowHeight(); dim.des = defaultRowHeight(); dim.wid = mi.base.textwidth; + // Cache the inset dimension. + setDimCache(mi, dim); } @@ -55,12 +57,14 @@ void InsetPagebreak::draw(PainterInfo & pi, int x, int y) const font.setColor(Color::pagebreak); font.decSize(); + Dimension const dim = dimension(*pi.base.bv); + int w = 0; int a = 0; int d = 0; theFontMetrics(font).rectText(insetLabel(), w, a, d); - int const text_start = int(x + (pi.base.textwidth - w) / 2); + int const text_start = int(x + (dim.wid - w) / 2); int const text_end = text_start + w; pi.pain.rectText(text_start, y + d, insetLabel(), font, @@ -68,7 +72,7 @@ void InsetPagebreak::draw(PainterInfo & pi, int x, int y) const pi.pain.line(x, y, text_start, y, Color::pagebreak, Painter::line_onoffdash); - pi.pain.line(text_end, y, int(x + pi.base.textwidth), y, + pi.pain.line(text_end, y, int(x + dim.wid), y, Color::pagebreak, Painter::line_onoffdash); }