From 9e6d1705a4215d9a32796f7c474fe327df9decfe Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 28 Nov 2009 21:45:34 +0000 Subject: [PATCH] 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 --- .../editors/interface/interface_handlers.c | 28 ++++++++----------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index fdd751a8fd8..6d65a2a57a1 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -1059,24 +1059,16 @@ static short test_special_char(char ch) 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 @@ static int ui_textedit_copypaste(uiBut *but, uiHandleButtonData *data, int paste 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