[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44703] trunk/blender/source/blender/ editors/interface/interface_handlers.c: tweak text delimiters for button ctrl + left/right, ctrl+backspace/del

Campbell Barton ideasman42 at gmail.com
Wed Mar 7 14:35:38 CET 2012


Revision: 44703
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44703
Author:   campbellbarton
Date:     2012-03-07 13:35:32 +0000 (Wed, 07 Mar 2012)
Log Message:
-----------
tweak text delimiters for button ctrl + left/right, ctrl+backspace/del

now theres always a single step before skipping delimiters, this means the skipping actions always advance by more then 1 char (which matches the text editor).

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	2012-03-07 13:01:30 UTC (rev 44702)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c	2012-03-07 13:35:32 UTC (rev 44703)
@@ -1329,37 +1329,35 @@
 {
 	const short pos_prev= *pos;
 
-	if(direction) { /* right*/
-		if(jump != BUTTON_EDIT_JUMP_NONE) {
+	if (direction) { /* right */
+		ui_textedit_step_next_utf8(str, maxlen, pos);
+
+		if (jump != BUTTON_EDIT_JUMP_NONE) {
 			const uiButtonDelimType is_special= (*pos) < maxlen ? test_special_char(str[(*pos)]) : BUTTON_DELIM_NONE;
 			/* jump between special characters (/,\,_,-, etc.),
 			 * look at function test_special_char() for complete
 			 * list of special character, ctr -> */
-			while((*pos) < maxlen) {
+			while ((*pos) < maxlen) {
 				if (ui_textedit_step_next_utf8(str, maxlen, pos)) {
-					if((jump != BUTTON_EDIT_JUMP_ALL) && (is_special != test_special_char(str[(*pos)]))) break;
+					if ((jump != BUTTON_EDIT_JUMP_ALL) && (is_special != test_special_char(str[(*pos)]))) break;
 				}
 				else {
 					break; /* unlikely but just incase */
 				}
 			}
 		}
-		else {
-			ui_textedit_step_next_utf8(str, maxlen, pos);
-		}
 	}
 	else { /* left */
+		ui_textedit_step_prev_utf8(str, maxlen, pos);
+
 		if(jump != BUTTON_EDIT_JUMP_NONE) {
 			const uiButtonDelimType is_special= (*pos) > 1 ? test_special_char(str[(*pos) - 1]) : BUTTON_DELIM_NONE;
-			/* left only: compensate for index/change in direction */
-			ui_textedit_step_prev_utf8(str, maxlen, pos);
-
 			/* jump between special characters (/,\,_,-, etc.),
 			 * look at function test_special_char() for complete
 			 * list of special character, ctr -> */
 			while ((*pos) > 0) {
 				if (ui_textedit_step_prev_utf8(str, maxlen, pos)) {
-					if((jump != BUTTON_EDIT_JUMP_ALL) && (is_special != test_special_char(str[(*pos)]))) break;
+					if ((jump != BUTTON_EDIT_JUMP_ALL) && (is_special != test_special_char(str[(*pos)]))) break;
 				}
 				else {
 					break;
@@ -1367,13 +1365,10 @@
 			}
 
 			/* left only: compensate for index/change in direction */
-			if(((*pos) != 0) && ABS(pos_prev - (*pos)) > 1) {
+			if (((*pos) != 0) && ABS(pos_prev - (*pos)) >= 1) {
 				ui_textedit_step_next_utf8(str, maxlen, pos);
 			}
 		}
-		else {
-			ui_textedit_step_prev_utf8(str, maxlen, pos);
-		}
 	}
 }
 




More information about the Bf-blender-cvs mailing list