diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/EditModel.cxx | 4 | ||||
| -rw-r--r-- | src/EditModel.h | 1 | ||||
| -rw-r--r-- | src/EditView.cxx | 2 | ||||
| -rw-r--r-- | src/Editor.cxx | 1 | ||||
| -rw-r--r-- | src/Editor.h | 4 | 
5 files changed, 9 insertions, 3 deletions
| diff --git a/src/EditModel.cxx b/src/EditModel.cxx index db215d9aa..50aa88b06 100644 --- a/src/EditModel.cxx +++ b/src/EditModel.cxx @@ -101,6 +101,10 @@ bool EditModel::BidirectionalR2L() const noexcept {  	return bidirectional == Bidirectional::R2L;  } +SurfaceMode EditModel::CurrentSurfaceMode() const noexcept { +	return SurfaceMode(pdoc->dbcsCodePage, BidirectionalR2L()); +} +  void EditModel::SetDefaultFoldDisplayText(const char *text) {  	defaultFoldDisplayText = IsNullOrEmpty(text) ? UniqueString() : UniqueStringCopy(text);  } diff --git a/src/EditModel.h b/src/EditModel.h index 0887b86ca..64005a504 100644 --- a/src/EditModel.h +++ b/src/EditModel.h @@ -66,6 +66,7 @@ public:  	virtual Sci::Line LinesOnScreen() const = 0;  	bool BidirectionalEnabled() const noexcept;  	bool BidirectionalR2L() const noexcept; +	SurfaceMode CurrentSurfaceMode() const noexcept;  	void SetDefaultFoldDisplayText(const char *text);  	const char *GetDefaultFoldDisplayText() const noexcept;  	const char *GetFoldDisplayText(Sci::Line lineDoc) const noexcept; diff --git a/src/EditView.cxx b/src/EditView.cxx index fad523351..961c54332 100644 --- a/src/EditView.cxx +++ b/src/EditView.cxx @@ -2441,7 +2441,7 @@ void EditView::PaintText(Surface *surfaceWindow, const EditModel &model, PRectan  			surface = pixmapLine.get();  			PLATFORM_ASSERT(pixmapLine->Initialised());  		} -		surface->SetMode(SurfaceMode(model.pdoc->dbcsCodePage, model.BidirectionalR2L())); +		surface->SetMode(model.CurrentSurfaceMode());  		const Point ptOrigin = model.GetVisibleOriginInMain(); diff --git a/src/Editor.cxx b/src/Editor.cxx index 34fcd4220..f048a5030 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -1706,6 +1706,7 @@ void Editor::PaintSelMargin(Surface *surfaceWindow, const PRectangle &rc) {  	} else {  		surface = surfaceWindow;  	} +	surface->SetMode(CurrentSurfaceMode());  	// Clip vertically to paint area to avoid drawing line numbers  	if (rcMargin.bottom > rc.bottom) diff --git a/src/Editor.h b/src/Editor.h index f3e23ef5b..fd140a800 100644 --- a/src/Editor.h +++ b/src/Editor.h @@ -688,14 +688,14 @@ public:  		if (ed->wMain.GetID()) {  			surf = Surface::Allocate(ed->technology);  			surf->Init(ed->wMain.GetID()); -			surf->SetMode(SurfaceMode(ed->CodePage(), ed->BidirectionalR2L())); +			surf->SetMode(ed->CurrentSurfaceMode());  		}  	}  	AutoSurface(SurfaceID sid, Editor *ed, std::optional<Scintilla::Technology> technology = {}) {  		if (ed->wMain.GetID()) {  			surf = Surface::Allocate(technology ? *technology : ed->technology);  			surf->Init(sid, ed->wMain.GetID()); -			surf->SetMode(SurfaceMode(ed->CodePage(), ed->BidirectionalR2L())); +			surf->SetMode(ed->CurrentSurfaceMode());  		}  	}  	// Deleted so AutoSurface objects can not be copied. | 
