Skip to content

Commit

Permalink
Fl_Input_: improved draing and warping for large fonts
Browse files Browse the repository at this point in the history
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6887 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
  • Loading branch information
Matthias Melcher committed Sep 19, 2009
1 parent e0103d2 commit 08dea80
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions src/Fl_Input_.cxx
Expand Up @@ -239,6 +239,7 @@ void Fl_Input_::drawtext(int X, int Y, int W, int H) {
// count how many lines and put the last one into the buffer:
// And figure out where the cursor is:
int height = fl_height();
int threshold = height/2;
int lines;
int curx, cury;
for (p=value(), curx=cury=lines=0; ;) {
Expand All @@ -248,15 +249,15 @@ void Fl_Input_::drawtext(int X, int Y, int W, int H) {
if (Fl::focus()==this && !was_up_down) up_down_pos = curx;
cury = lines*height;
int newscroll = xscroll_;
if (curx > newscroll+W-20) {
if (curx > newscroll+W-threshold) {
// figure out scrolling so there is space after the cursor:
newscroll = curx+20-W;
newscroll = curx+threshold-W;
// figure out the furthest left we ever want to scroll:
int ex = int(expandpos(p, e, buf, 0))+2-W;
// use minimum of both amounts:
if (ex < newscroll) newscroll = ex;
} else if (curx < newscroll+20) {
newscroll = curx-20;
} else if (curx < newscroll+threshold) {
newscroll = curx-threshold;
}
if (newscroll < 0) newscroll = 0;
if (newscroll != xscroll_) {
Expand Down

0 comments on commit 08dea80

Please sign in to comment.