[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24986] trunk/blender/source/blender/ editors/interface/interface_handlers.c: bugfix [#20050] Hex color value fields capped to 2 characters on first paste.

Campbell Barton ideasman42 at gmail.com
Sat Nov 28 22:45:35 CET 2009


Revision: 24986
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24986
Author:   campbellbarton
Date:     2009-11-28 22:45:34 +0100 (Sat, 28 Nov 2009)

Log Message:
-----------
bugfix [#20050] Hex color value fields capped to 2 characters on first paste.
also use memmove rather then a loop for deleting the selected text

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/interface_handlers.c

Modified: trunk/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_handlers.c	2009-11-28 21:27:28 UTC (rev 24985)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c	2009-11-28 21:45:34 UTC (rev 24986)
@@ -1059,24 +1059,16 @@
 
 static int ui_textedit_delete_selection(uiBut *but, uiHandleButtonData *data)
 {
-	char *str;
-	int x, changed;
-	
-	str= data->str;
-	changed= (but->selsta != but->selend);
-	
-	for(x=0; x< strlen(str); x++) {
-		if (but->selend + x <= strlen(str) ) {
-			str[but->selsta + x]= str[but->selend + x];
-		} else {
-			str[but->selsta + x]= '\0';
-			break;
-		}
+	char *str= data->str;
+	int len= strlen(str);
+	int change= 0;
+	if(but->selsta != but->selend && len) {
+		memmove( str+but->selsta, str+but->selend, len+1 );
+		change= 1;
 	}
-
+	
 	but->pos = but->selend = but->selsta;
-
-	return changed;
+	return change;
 }
 
 static void ui_textedit_set_cursor_pos(uiBut *but, uiHandleButtonData *data, short x)
@@ -1365,8 +1357,10 @@
 			buf[i]= 0;
 
 			/* paste over the current selection */
-			if ((but->selend - but->selsta) > 0)
+			if ((but->selend - but->selsta) > 0) {
 				ui_textedit_delete_selection(but, data);
+				len= strlen(str);
+			}
 			
 			for (y=0; y<strlen(buf); y++)
 			{





More information about the Bf-blender-cvs mailing list