diff options
| author | nyamatongwe <unknown> | 2012-03-01 10:12:25 +1100 | 
|---|---|---|
| committer | nyamatongwe <unknown> | 2012-03-01 10:12:25 +1100 | 
| commit | c5a0e5e7516b4fb3263d52abefe6e38fa9f1e094 (patch) | |
| tree | 8e2854a15d9ffbda21518f54ecd6e35a485591fb | |
| parent | e3fc747b2c8c970566d19f11777897c153d86629 (diff) | |
| download | scintilla-mirror-c5a0e5e7516b4fb3263d52abefe6e38fa9f1e094.tar.gz | |
Bug #3494492. Change aveCharWidth in FontMeasurements to actually store
fractional width. This change complements change set 3994.
Make WidthText() and AverageCharWidth() actually return fractional widths
under Direct2D.
From Marko Njezic.
| -rw-r--r-- | src/Editor.cxx | 4 | ||||
| -rw-r--r-- | src/LineMarker.cxx | 2 | ||||
| -rw-r--r-- | src/Style.h | 2 | ||||
| -rw-r--r-- | win32/PlatWin.cxx | 4 | 
4 files changed, 6 insertions, 6 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx index bb5813686..421f33220 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -1947,8 +1947,8 @@ void Editor::PaintSelMargin(Surface *surfWindow, PRectangle &rc) {  					}  					PRectangle rcNumber = rcMarker;  					// Right justify -					int width = surface->WidthText(vs.styles[STYLE_LINENUMBER].font, number, istrlen(number)); -					int xpos = rcNumber.right - width - 3; +					XYPOSITION width = surface->WidthText(vs.styles[STYLE_LINENUMBER].font, number, istrlen(number)); +					XYPOSITION xpos = rcNumber.right - width - 3;  					rcNumber.left = xpos;  					surface->DrawTextNoClip(rcNumber, vs.styles[STYLE_LINENUMBER].font,  					        rcNumber.top + vs.maxAscent, number, istrlen(number), diff --git a/src/LineMarker.cxx b/src/LineMarker.cxx index 267ea18f4..99e83265e 100644 --- a/src/LineMarker.cxx +++ b/src/LineMarker.cxx @@ -338,7 +338,7 @@ void LineMarker::Draw(Surface *surface, PRectangle &rcWhole, Font &fontForCharac  	} else if (markType >= SC_MARK_CHARACTER) {  		char character[1];  		character[0] = static_cast<char>(markType - SC_MARK_CHARACTER); -		int width = surface->WidthText(fontForCharacter, character, 1); +		XYPOSITION width = surface->WidthText(fontForCharacter, character, 1);  		rc.left += (rc.Width() - width) / 2;  		rc.right = rc.left + width;  		surface->DrawTextClipped(rc, fontForCharacter, rc.bottom - 2, diff --git a/src/Style.h b/src/Style.h index 018ab70f5..cccf18f3e 100644 --- a/src/Style.h +++ b/src/Style.h @@ -47,7 +47,7 @@ struct FontMeasurements {  	unsigned int ascent;  	unsigned int descent;  	unsigned int externalLeading; -	unsigned int aveCharWidth; +	XYPOSITION aveCharWidth;  	XYPOSITION spaceWidth;  	int sizeZoomed;  	FontMeasurements(); diff --git a/win32/PlatWin.cxx b/win32/PlatWin.cxx index 61e8b34d5..baa2e9ef5 100644 --- a/win32/PlatWin.cxx +++ b/win32/PlatWin.cxx @@ -1611,7 +1611,7 @@ XYPOSITION SurfaceD2D::WidthText(Font &font_, const char *s, int len) {  			pTextLayout->Release();  		}  	} -	return int(width + 0.5); +	return width;  }  void SurfaceD2D::MeasureWidths(Font &font_, const char *s, int len, XYPOSITION *positions) { @@ -1754,7 +1754,7 @@ XYPOSITION SurfaceD2D::AverageCharWidth(Font &font_) {  			pTextLayout->Release();  		}  	} -	return int(width + 0.5); +	return width;  }  void SurfaceD2D::SetClip(PRectangle rc) {  | 
