diff options
-rw-r--r-- | cocoa/ScintillaCocoa.mm | 4 | ||||
-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 | ||||
-rw-r--r-- | win32/ScintillaWin.cxx | 2 |
7 files changed, 12 insertions, 6 deletions
diff --git a/cocoa/ScintillaCocoa.mm b/cocoa/ScintillaCocoa.mm index 09357eb39..e8723f318 100644 --- a/cocoa/ScintillaCocoa.mm +++ b/cocoa/ScintillaCocoa.mm @@ -1100,7 +1100,7 @@ void ScintillaCocoa::CTPaint(void *gc, NSRect rc) { #pragma unused(rc) std::unique_ptr<Surface> surfaceWindow(Surface::Allocate(Technology::Default)); surfaceWindow->Init(gc, wMain.GetID()); - surfaceWindow->SetMode(SurfaceMode(ct.codePage, BidirectionalR2L())); + surfaceWindow->SetMode(CurrentSurfaceMode()); ct.PaintCT(surfaceWindow.get()); surfaceWindow->Release(); } @@ -1456,7 +1456,7 @@ void ScintillaCocoa::StartDrag() { // To get a bitmap of the text we're dragging, we just use Paint on a pixmap surface. SurfaceImpl si; - si.SetMode(SurfaceMode(CodePage(), BidirectionalR2L())); + si.SetMode(CurrentSurfaceMode()); std::unique_ptr<SurfaceImpl> sw = si.AllocatePixMapImplementation(static_cast<int>(client.Width()), static_cast<int>(client.Height())); const bool lastHideSelection = view.hideSelection; 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. diff --git a/win32/ScintillaWin.cxx b/win32/ScintillaWin.cxx index 64c356b49..7bb8d43db 100644 --- a/win32/ScintillaWin.cxx +++ b/win32/ScintillaWin.cxx @@ -3527,7 +3527,7 @@ LRESULT PASCAL ScintillaWin::CTWndProc( } #endif } - surfaceWindow->SetMode(SurfaceMode(sciThis->ct.codePage, sciThis->BidirectionalR2L())); + surfaceWindow->SetMode(sciThis->CurrentSurfaceMode()); sciThis->ct.PaintCT(surfaceWindow.get()); #if defined(USE_D2D) if (pCTRenderTarget) |