[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56428] trunk/blender/source/blender: holding ctrl when using arrow keys in the text editor didn' t navigate newlines.

Campbell Barton ideasman42 at gmail.com
Wed May 1 02:15:22 CEST 2013


Revision: 56428
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56428
Author:   campbellbarton
Date:     2013-05-01 00:15:22 +0000 (Wed, 01 May 2013)
Log Message:
-----------
holding ctrl when using arrow keys in the text editor didn't navigate newlines.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_text.h
    trunk/blender/source/blender/blenkernel/intern/text.c
    trunk/blender/source/blender/editors/space_text/text_ops.c

Modified: trunk/blender/source/blender/blenkernel/BKE_text.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_text.h	2013-04-30 23:35:02 UTC (rev 56427)
+++ trunk/blender/source/blender/blenkernel/BKE_text.h	2013-05-01 00:15:22 UTC (rev 56428)
@@ -101,6 +101,8 @@
 void	txt_move_lines		(struct Text *text, const int direction);
 void	txt_duplicate_line	(struct Text *text);
 int		txt_setcurr_tab_spaces(struct Text *text, int space);
+bool	txt_cursor_is_line_start(struct Text *text);
+bool	txt_cursor_is_line_end(struct Text *text);
 
 /* utility functions, could be moved somewhere more generic but are python/text related  */
 int text_check_bracket(const char ch);

Modified: trunk/blender/source/blender/blenkernel/intern/text.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/text.c	2013-04-30 23:35:02 UTC (rev 56427)
+++ trunk/blender/source/blender/blenkernel/intern/text.c	2013-05-01 00:15:22 UTC (rev 56428)
@@ -780,6 +780,16 @@
 	*linep = &text->sell; *charp = &text->selc;
 }
 
+bool txt_cursor_is_line_start(Text *text)
+{
+	return (text->selc == 0);
+}
+
+bool txt_cursor_is_line_end(Text *text)
+{
+	return (text->selc == text->sell->len);
+}
+
 /*****************************/
 /* Cursor movement functions */
 /*****************************/

Modified: trunk/blender/source/blender/editors/space_text/text_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_text/text_ops.c	2013-04-30 23:35:02 UTC (rev 56427)
+++ trunk/blender/source/blender/editors/space_text/text_ops.c	2013-05-01 00:15:22 UTC (rev 56428)
@@ -1855,10 +1855,16 @@
 			break;
 
 		case PREV_WORD:
+			if (txt_cursor_is_line_start(text)) {
+				txt_move_left(text, select);
+			}
 			txt_jump_left(text, select, true);
 			break;
 
 		case NEXT_WORD:
+			if (txt_cursor_is_line_end(text)) {
+				txt_move_right(text, select);
+			}
 			txt_jump_right(text, select, true);
 			break;
 
@@ -2005,14 +2011,24 @@
 
 	text_drawcache_tag_update(CTX_wm_space_text(C), 0);
 
-	if (type == DEL_PREV_WORD)
+	if (type == DEL_PREV_WORD) {
+		if (txt_cursor_is_line_start(text)) {
+			txt_backspace_char(text);
+		}
 		txt_backspace_word(text);
-	else if (type == DEL_PREV_CHAR)
+	}
+	else if (type == DEL_PREV_CHAR) {
 		txt_backspace_char(text);
-	else if (type == DEL_NEXT_WORD)
+	}
+	else if (type == DEL_NEXT_WORD) {
+		if (txt_cursor_is_line_end(text)) {
+			txt_delete_char(text);
+		}
 		txt_delete_word(text);
-	else if (type == DEL_NEXT_CHAR)
+	}
+	else if (type == DEL_NEXT_CHAR) {
 		txt_delete_char(text);
+	}
 
 	text_update_line_edited(text->curl);
 




More information about the Bf-blender-cvs mailing list