aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--cocoa/ScintillaCocoa.mm4
-rw-r--r--src/EditModel.cxx4
-rw-r--r--src/EditModel.h1
-rw-r--r--src/EditView.cxx2
-rw-r--r--src/Editor.cxx1
-rw-r--r--src/Editor.h4
-rw-r--r--win32/ScintillaWin.cxx2
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)