Am Dienstag, 15. Februar 2005 11:31 schrieb Lars Gullik Bjønnes:
> Ok, then at least the --x; should have a comment on it.

See attached. Committing now.

André, I hope your cvs troubles are solved soon. I am not going to write 
comments and changelogs for you forever ;-)


Georg
diff -p -r -U 3 -X excl.tmp lyx-1.4-clean/src/bufferview_funcs.C lyx-1.4-cvs/src/bufferview_funcs.C
--- lyx-1.4-clean/src/bufferview_funcs.C	2005-02-08 20:28:36.000000000 +0100
+++ lyx-1.4-cvs/src/bufferview_funcs.C	2005-02-15 20:07:26.000000000 +0100
@@ -174,7 +174,10 @@ Point coordOffset(DocIterator const & di
 		y += par.rows()[rit].height();
 	y += par.rows()[par.pos2row(sl.pos())].ascent();
 	x += dit.bottom().text()->cursorX(dit.bottom());
-	return Point(x,y);
+	// The following correction should not be there at all.
+	// The cusor looks much better with the -1, though.
+	--x;
+	return Point(x, y);
 }
 
 
diff -p -r -U 3 -X excl.tmp lyx-1.4-clean/src/ChangeLog lyx-1.4-cvs/src/ChangeLog
--- lyx-1.4-clean/src/ChangeLog	2005-02-15 18:35:48.000000000 +0100
+++ lyx-1.4-cvs/src/ChangeLog	2005-02-15 20:07:44.000000000 +0100
@@ -1,3 +1,7 @@
+2005-02-13  André Pönitz  <[EMAIL PROTECTED]>
+
+	* bufferview_funcs.C (coordOffset): improve cursor drawing
+
 2005-02-13  André Pönitz  <[EMAIL PROTECTED]>
 
 	* Cursor.[Ch] (fixIfBroken): new method, try to fix a broken cursor
diff -p -r -U 3 -X excl.tmp lyx-1.4-clean/src/insets/ChangeLog lyx-1.4-cvs/src/insets/ChangeLog
--- lyx-1.4-clean/src/insets/ChangeLog	2005-02-15 18:35:16.000000000 +0100
+++ lyx-1.4-cvs/src/insets/ChangeLog	2005-02-15 20:11:00.000000000 +0100
@@ -1,3 +1,9 @@
+2005-02-13  André Pönitz  <[EMAIL PROTECTED]>
+
+	* insettext.[Ch] (border_): new 
+	* insettext.C (metrics, draw, drawFrame, clearInset, getCursorPos):
+	use border_
+
 2005-02-14  Angus Leeming  <[EMAIL PROTECTED]>
 
 	* insetlatexaccent.C (draw): squash a couple of MSVC warnings
diff -p -r -U 3 -X excl.tmp lyx-1.4-clean/src/insets/insettext.C lyx-1.4-cvs/src/insets/insettext.C
--- lyx-1.4-clean/src/insets/insettext.C	2005-02-08 20:29:10.000000000 +0100
+++ lyx-1.4-cvs/src/insets/insettext.C	2005-02-15 20:04:12.000000000 +0100
@@ -70,6 +70,9 @@ using std::ostream;
 using std::vector;
 
 
+int InsetText::border_ = 2;
+
+
 InsetText::InsetText(BufferParams const & bp)
 	: drawFrame_(false), frame_color_(LColor::insetframe), text_(0)
 {
@@ -92,7 +95,8 @@ InsetText::InsetText(InsetText const & i
 }
 
 
-InsetText::InsetText() : text_(0)
+InsetText::InsetText()
+	: text_(0)
 {}
 
 
@@ -168,9 +172,14 @@ void InsetText::metrics(MetricsInfo & mi
 {
 	//lyxerr << "InsetText::metrics: width: " << mi.base.textwidth << endl;
 	setViewCache(mi.base.bv);
+	mi.base.textwidth -= 2 * border_;
 	font_ = mi.base.font;
 	text_.font_ = mi.base.font;
 	text_.metrics(mi, dim);
+	dim.asc += border_;
+	dim.des += border_;
+	dim.wid += 2 * border_;
+	mi.base.textwidth += 2 * border_;
 	dim_ = dim;
 }
 
@@ -185,10 +194,7 @@ void InsetText::draw(PainterInfo & pi, i
 	bv->hideCursor();
 
 	x += scroll();
-	//y -= text_.ascent();
-
-
-	text_.draw(pi, x, y);
+	text_.draw(pi, x + border_, y);
 
 	if (drawFrame_)
 		drawFrame(pi.pain, x, y);
@@ -206,18 +212,18 @@ void InsetText::drawSelection(PainterInf
 
 void InsetText::drawFrame(Painter & pain, int x, int y) const
 {
-	int const w = max(1, text_.width());
-	int const h = text_.height();
-	int const a = text_.ascent();
+	int const w = text_.width() + border_;
+	int const a = text_.ascent() + border_;
+	int const h = a + text_.descent() + border_;
 	pain.rectangle(x, y - a, w, h, frameColor());
 }
 
 
 void InsetText::clearInset(Painter & pain, int x, int y) const
 {
-	int const w = text_.width();
-	int const h = text_.height();
-	int const a = text_.ascent();
+	int const w = text_.width() + border_;
+	int const a = text_.ascent() + border_;
+	int const h = a + text_.descent() + border_;
 	pain.fillRectangle(x, y - a, w, h, backgroundColor());
 }
 
@@ -356,7 +362,7 @@ void InsetText::validate(LaTeXFeatures &
 
 void InsetText::getCursorPos(CursorSlice const & sl, int & x, int & y) const
 {
-	x = text_.cursorX(sl);
+	x = text_.cursorX(sl) + border_;
 	y = text_.cursorY(sl);
 }
 
diff -p -r -U 3 -X excl.tmp lyx-1.4-clean/src/insets/insettext.h lyx-1.4-cvs/src/insets/insettext.h
--- lyx-1.4-clean/src/insets/insettext.h	2004-12-19 11:37:17.000000000 +0100
+++ lyx-1.4-cvs/src/insets/insettext.h	2005-02-15 20:04:11.000000000 +0100
@@ -165,6 +165,8 @@ private:
 	int frame_color_;
 	///
 	mutable lyx::pit_type old_pit;
+	///
+	static int border_;
 public:
 	///
 	mutable LyXText text_;

Reply via email to