diff options
Diffstat (limited to 'src/Editor.cxx')
| -rw-r--r-- | src/Editor.cxx | 31 | 
1 files changed, 19 insertions, 12 deletions
| diff --git a/src/Editor.cxx b/src/Editor.cxx index ddd9fbcd6..c9833b03a 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -419,7 +419,7 @@ void Editor::RefreshColourPalette(Palette &pal, bool want) {  void Editor::RefreshStyleData() {  	if (!stylesValid) {  		stylesValid = true; -		AutoSurface surface(IsUnicodeMode()); +		AutoSurface surface(CodePage());  		if (surface) {  			vs.Refresh(*surface);  			RefreshColourPalette(palette, true); @@ -499,7 +499,7 @@ Point Editor::LocationFromPosition(int pos) {  	int line = pdoc->LineFromPosition(pos);  	int lineVisible = cs.DisplayFromDoc(line);  	//Platform::DebugPrintf("line=%d\n", line); -	AutoSurface surface(IsUnicodeMode()); +	AutoSurface surface(CodePage());  	LineLayout *ll = RetrieveLineLayout(line);  	if (surface && ll) {  		// -1 because of adding in for visible lines in following loop. @@ -552,7 +552,7 @@ int Editor::PositionFromLocation(Point pt) {  	int lineDoc = cs.DocFromDisplay(visibleLine);  	if (lineDoc >= pdoc->LinesTotal())  		return pdoc->Length(); -	AutoSurface surface(IsUnicodeMode()); +	AutoSurface surface(CodePage());  	int retVal = 0;  	LineLayout *ll = RetrieveLineLayout(lineDoc);  	if (surface && ll) { @@ -600,7 +600,7 @@ int Editor::PositionFromLocationClose(Point pt) {  		return INVALID_POSITION;  	if (lineDoc >= pdoc->LinesTotal())  		return INVALID_POSITION; -	AutoSurface surface(IsUnicodeMode()); +	AutoSurface surface(CodePage());  	LineLayout *ll = RetrieveLineLayout(lineDoc);  	if (surface && ll) {  		LayoutLine(lineDoc, surface, vs, ll, wrapWidth); @@ -634,7 +634,7 @@ int Editor::PositionFromLineX(int lineDoc, int x) {  	if (lineDoc >= pdoc->LinesTotal())  		return pdoc->Length();  	//Platform::DebugPrintf("Position of (%d,%d) line = %d top=%d\n", pt.x, pt.y, line, topLine); -	AutoSurface surface(IsUnicodeMode()); +	AutoSurface surface(CodePage());  	LineLayout *ll = RetrieveLineLayout(lineDoc);  	int retVal = 0;  	if (surface && ll) { @@ -935,7 +935,7 @@ void Editor::MoveCaretInsideView(bool ensureVisible) {  int Editor::DisplayFromPosition(int pos) {  	int lineDoc = pdoc->LineFromPosition(pos);  	int lineDisplay = cs.DisplayFromDoc(lineDoc); -	AutoSurface surface(IsUnicodeMode()); +	AutoSurface surface(CodePage());  	LineLayout *ll = RetrieveLineLayout(lineDoc);  	if (surface && ll) {  		LayoutLine(lineDoc, surface, vs, ll, wrapWidth); @@ -1272,7 +1272,7 @@ bool Editor::WrapLines() {  			wrapWidth = rcTextArea.Width();  			// Ensure all of the document is styled.  			pdoc->EnsureStyledTo(pdoc->Length()); -			AutoSurface surface(IsUnicodeMode()); +			AutoSurface surface(CodePage());  			if (surface) {  				int lastLineToWrap = pdoc->LinesTotal();  				while (docLineLastWrapped <= lastLineToWrap) { @@ -2356,10 +2356,10 @@ long Editor::FormatRange(bool draw, RangeToFormat *pfr) {  	if (!pfr)  		return 0; -	AutoSurface surface(pfr->hdc, IsUnicodeMode()); +	AutoSurface surface(pfr->hdc, CodePage());  	if (!surface)  		return 0; -	AutoSurface surfaceMeasure(pfr->hdcTarget, IsUnicodeMode()); +	AutoSurface surfaceMeasure(pfr->hdcTarget, CodePage());  	if (!surfaceMeasure) {  		return 0;  	} @@ -2531,7 +2531,7 @@ long Editor::FormatRange(bool draw, RangeToFormat *pfr) {  int Editor::TextWidth(int style, const char *text) {  	RefreshStyleData(); -	AutoSurface surface(IsUnicodeMode()); +	AutoSurface surface(CodePage());  	if (surface) {  		return surface->WidthText(vs.styles[style].font, text, strlen(text));  	} else { @@ -2935,7 +2935,7 @@ void Editor::CheckModificationForWrap(DocModification mh) {  		if (wrapState != eWrapNone) {  			int lineDoc = pdoc->LineFromPosition(mh.position);  			if (mh.linesAdded == 0) { -				AutoSurface surface(IsUnicodeMode()); +				AutoSurface surface(CodePage());  				LineLayout *ll = RetrieveLineLayout(lineDoc);  				if (surface && ll) {  					LayoutLine(lineDoc, surface, vs, ll, wrapWidth); @@ -3303,7 +3303,7 @@ void Editor::CursorUpOrDown(int direction, bool extend) {  int Editor::StartEndDisplayLine(int pos, bool start) {  	RefreshStyleData();  	int line = pdoc->LineFromPosition(pos); -	AutoSurface surface(IsUnicodeMode()); +	AutoSurface surface(CodePage());  	LineLayout *ll = RetrieveLineLayout(line);  	int posRet = INVALID_POSITION;  	if (surface && ll) { @@ -4554,6 +4554,13 @@ bool Editor::IsUnicodeMode() const {  	return pdoc && (SC_CP_UTF8 == pdoc->dbcsCodePage);  } +int Editor::CodePage() const { +	if (pdoc) +		return pdoc->dbcsCodePage; +	else +		return 0; +} +  static bool ValidMargin(unsigned long wParam) {  	return wParam < ViewStyle::margins;  } | 
