[Bf-blender-cvs] [1dddad9] master: Fix Text editor home/end keys when theres a selection

Campbell Barton noreply at git.blender.org
Fri Aug 29 07:35:48 CEST 2014


Commit: 1dddad93c45bb29e001afe21e24ae1f34aaa3e7f
Author: Campbell Barton
Date:   Fri Aug 29 14:52:23 2014 +1000
Branches: master
https://developer.blender.org/rB1dddad93c45bb29e001afe21e24ae1f34aaa3e7f

Fix Text editor home/end keys when theres a selection

===================================================================

M	source/blender/blenkernel/BKE_text.h
M	source/blender/blenkernel/intern/text.c
M	source/blender/editors/space_text/text_ops.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_text.h b/source/blender/blenkernel/BKE_text.h
index 4f77e4f5..1e79eaa 100644
--- a/source/blender/blenkernel/BKE_text.h
+++ b/source/blender/blenkernel/BKE_text.h
@@ -85,6 +85,7 @@ void	txt_delete_char		(struct Text *text);
 void	txt_delete_word		(struct Text *text);
 void	txt_delete_selected	(struct Text *text);
 void	txt_sel_all			(struct Text *text);
+void	txt_sel_clear		(struct Text *text);
 void	txt_sel_line		(struct Text *text);
 char   *txt_sel_to_buf		(struct Text *text);
 void	txt_insert_buf		(struct Text *text, const char *in_buffer);
diff --git a/source/blender/blenkernel/intern/text.c b/source/blender/blenkernel/intern/text.c
index 47b615c..4cd85fb 100644
--- a/source/blender/blenkernel/intern/text.c
+++ b/source/blender/blenkernel/intern/text.c
@@ -1286,6 +1286,19 @@ void txt_sel_all(Text *text)
 	text->selc = text->sell->len;
 }
 
+/**
+ * Reverse of #txt_pop_sel
+ * Clears the selection and ensures the cursor is located
+ * at the selection (where the cursor is visually while editing).
+ */
+void txt_sel_clear(Text *text)
+{
+	if (text->sell) {
+		text->curl = text->sell;
+		text->curc = text->selc;
+	}
+}
+
 void txt_sel_line(Text *text)
 {
 	if (!text) return;
diff --git a/source/blender/editors/space_text/text_ops.c b/source/blender/editors/space_text/text_ops.c
index fcd6fb3..2e3d8d0 100644
--- a/source/blender/editors/space_text/text_ops.c
+++ b/source/blender/editors/space_text/text_ops.c
@@ -1825,11 +1825,17 @@ static int text_move_cursor(bContext *C, int type, bool select)
 
 	switch (type) {
 		case LINE_BEGIN:
+			if (!select) {
+				txt_sel_clear(text);
+			}
 			if (st && st->wordwrap && ar) txt_wrap_move_bol(st, ar, select);
 			else txt_move_bol(text, select);
 			break;
 			
 		case LINE_END:
+			if (!select) {
+				txt_sel_clear(text);
+			}
 			if (st && st->wordwrap && ar) txt_wrap_move_eol(st, ar, select);
 			else txt_move_eol(text, select);
 			break;




More information about the Bf-blender-cvs mailing list