Author: matt
Date: 2010-05-06 13:33:55 -0700 (Thu, 06 May 2010)
New Revision: 7594
Log:
Fixed the cursor position when scrolling horizontally

Modified:
   branches/branch-1.3-STR2158-matt/src/Fl_Text_Display.cxx

Modified: branches/branch-1.3-STR2158-matt/src/Fl_Text_Display.cxx
===================================================================
--- branches/branch-1.3-STR2158-matt/src/Fl_Text_Display.cxx    2010-05-06 
07:13:33 UTC (rev 7593)
+++ branches/branch-1.3-STR2158-matt/src/Fl_Text_Display.cxx    2010-05-06 
20:33:55 UTC (rev 7594)
@@ -706,7 +706,7 @@
     return 1;
   }
   lineLen = vline_length( visLineNum );
-  *X = handle_vline(GET_WIDTH, lineStartPos, pos-lineStartPos, 0, 0, 0, 0, 0, 
0);
+  *X = text_area.x + handle_vline(GET_WIDTH, lineStartPos, pos-lineStartPos, 
0, 0, 0, 0, 0, 0) - mHorizOffset;
   return 1;
 }
 
@@ -1401,6 +1401,7 @@
     X = 0;
   else 
     X = text_area.x - mHorizOffset;
+  
   startX = X;
   startIndex = 0;
   if (!lineStr) {
@@ -1409,7 +1410,9 @@
       style = position_style(lineStartPos, lineLen, -1);
       draw_string( style|BG_ONLY_MASK, text_area.x, Y, 
text_area.x+text_area.w, lineStr, lineLen );
     }
-    return lineStartPos;
+    if (mode==FIND_INDEX)
+      return lineStartPos;
+    return 0;
   }
   
   // draw the line
@@ -1446,6 +1449,7 @@
     return lineStartPos + startIndex + di;
   }
   if (mode==GET_WIDTH) {
+    free(lineStr);
     return startX+w;
   }
     
@@ -1460,7 +1464,7 @@
 }
 
 int Fl_Text_Display::find_x(const char *s, int len, int style, int x) const {
-  // FIXME: use banary search which is much quicker!
+  // FIXME: use binary search which is much quicker!
   int i = 0;
   while (i<len) {
     int cl = fl_utf8len(s[i]);

_______________________________________________
fltk-commit mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-commit

Reply via email to