FLTK logo

[Library] r4523 - in branches/branch-1.1: . src

FLTK matrix user chat room
(using Element browser app)   FLTK gitter user chat room   GitHub FLTK Project   FLTK News RSS Feed  
  FLTK Apps      FLTK Library      Forums      Links     Login 
 All Forums  |  Back to fltk.commit  ]
 
Previous Message ]Next Message ]

[Library] r4523 - in branches/branch-1.1: . src fltk-dev Aug 17, 2005  
 
Author: matt
Date: 2005-08-17 08:07:34 -0400 (Wed, 17 Aug 2005)
New Revision: 4523

Modified:
   branches/branch-1.1/CHANGES
   branches/branch-1.1/src/Fl_Input_.cxx
Log:
Fixed redraw range in Multiline Input with wordwrapping for space characters and for undo.

Modified: branches/branch-1.1/CHANGES
===================================================================
--- branches/branch-1.1/CHANGES	2005-08-17 11:33:12 UTC (rev 4522)
+++ branches/branch-1.1/CHANGES	2005-08-17 12:07:34 UTC (rev 4523)
@@ -3,6 +3,8 @@
 	- Documentation fixes (STR #571, STR #648, STR #692, STR
 	  #730, STR #744, STR #745, STR #931, STR #942, STR #960,
 	  STR #969)
+	- Multiline Input will update right if a space character is
+	  inserted in word wrap mode (STR #981)
 	- FLUID group labels redraw correctly (STR #959)
 	- FLUID now updates color of Fl_Tabs children (STR #979)
 	- FLUID now supports 'size_range()' (STR #851)

Modified: branches/branch-1.1/src/Fl_Input_.cxx
===================================================================
--- branches/branch-1.1/src/Fl_Input_.cxx	2005-08-17 11:33:12 UTC (rev 4522)
+++ branches/branch-1.1/src/Fl_Input_.cxx	2005-08-17 12:07:34 UTC (rev 4523)
@@ -592,8 +592,15 @@
   // right after the whitespace before the current word.  This will
   // result in sub-optimal update when such wrapping does not happen
   // but it is too hard to figure out for now...
-  if (wrap())
-    while (b > 0 && !isspace(index(b) & 255)) b--;
+  if (wrap()) {
+    // if there is a space in the pasted text, the whole line may have rewrapped
+    for (int i=0; i<ilen; i++) 
+      if (text[i]==' ') break;
+    if (i==ilen)
+      while (b > 0 && !isspace(index(b) & 255) && index(b)!='\n') b--;
+    else
+      while (b > 0 && index(b)!='\n') b--;
+  }
 
   // make sure we redraw the old selection or cursor:
   if (mark_ < b) b = mark_;
@@ -640,6 +647,8 @@
   mark_ = b /* -ilen */;
   position_ = b;
 
+  if (wrap())
+    while (b1 > 0 && index(b1)!='\n') b1--;
   minimal_update(b1);
   set_changed();
   if (when()&FL_WHEN_CHANGED) do_callback();

Direct Link to Message ]
 
     
Previous Message ]Next Message ]
 
 

Comments are owned by the poster. All other content is copyright 1998-2024 by Bill Spitzak and others. This project is hosted by The FLTK Team. Please report site problems to 'erco@seriss.com'.