aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2015-03-11 13:37:11 +1100
committerNeil <nyamatongwe@gmail.com>2015-03-11 13:37:11 +1100
commit2cf0d3e80236e089e06a5033575f58ccc090a262 (patch)
treeeac7cd5978332ecb50c33b41e4833fbcad14e671
parentc48c5c1af385364d1319e544df97c765d06222f4 (diff)
downloadscintilla-mirror-2cf0d3e80236e089e06a5033575f58ccc090a262.tar.gz
Allow minimum tab width to be tweaked to allow character cell implementation
to work better.
-rw-r--r--src/EditView.cxx5
-rw-r--r--src/EditView.h1
2 files changed, 4 insertions, 2 deletions
diff --git a/src/EditView.cxx b/src/EditView.cxx
index 9d940f701..5372e3abd 100644
--- a/src/EditView.cxx
+++ b/src/EditView.cxx
@@ -173,6 +173,7 @@ const XYPOSITION epsilon = 0.0001f; // A small nudge to avoid floating point pre
EditView::EditView() {
ldTabstops = NULL;
+ tabWidthMinimumPixels = 2; // needed for calculating tab stops for fractional proportional fonts
hideSelection = false;
drawOverstrikeCaret = true;
bufferedDraw = true;
@@ -220,10 +221,10 @@ void EditView::ClearAllTabstops() {
}
XYPOSITION EditView::NextTabstopPos(int line, XYPOSITION x, XYPOSITION tabWidth) const {
- int next = GetNextTabstop(line, static_cast<int>(x + 2));
+ int next = GetNextTabstop(line, static_cast<int>(x + tabWidthMinimumPixels));
if (next > 0)
return static_cast<XYPOSITION>(next);
- return (static_cast<int>((x + 2) / tabWidth) + 1) * tabWidth;
+ return (static_cast<int>((x + tabWidthMinimumPixels) / tabWidth) + 1) * tabWidth;
}
bool EditView::ClearTabstops(int line) {
diff --git a/src/EditView.h b/src/EditView.h
index 70af6b2bf..79a88657a 100644
--- a/src/EditView.h
+++ b/src/EditView.h
@@ -51,6 +51,7 @@ class EditView {
public:
PrintParameters printParameters;
PerLine *ldTabstops;
+ int tabWidthMinimumPixels;
bool hideSelection;
bool drawOverstrikeCaret;