[Bf-blender-cvs] [a571ff2c16c] master: Text: minor change to text prefix behavior

Campbell Barton noreply at git.blender.org
Fri Aug 9 20:49:28 CEST 2019


Commit: a571ff2c16c61baeb0cb55c0d6346adc0e958781
Author: Campbell Barton
Date:   Sat Aug 10 04:25:22 2019 +1000
Branches: master
https://developer.blender.org/rBa571ff2c16c61baeb0cb55c0d6346adc0e958781

Text: minor change to text prefix behavior

Don't keep the cursor at the start of the line,
this was creating a selection when adding a prefix without a selection.

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

M	source/blender/blenkernel/intern/text.c

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

diff --git a/source/blender/blenkernel/intern/text.c b/source/blender/blenkernel/intern/text.c
index 562e2814efa..1a3e42a7da2 100644
--- a/source/blender/blenkernel/intern/text.c
+++ b/source/blender/blenkernel/intern/text.c
@@ -1933,7 +1933,7 @@ bool txt_replace_char(Text *text, unsigned int add)
  */
 static void txt_select_prefix(Text *text, const char *add)
 {
-  int len, num, curc_old;
+  int len, num, curc_old, selc_old;
   char *tmp;
 
   const int indentlen = strlen(add);
@@ -1941,6 +1941,7 @@ static void txt_select_prefix(Text *text, const char *add)
   BLI_assert(!ELEM(NULL, text->curl, text->sell));
 
   curc_old = text->curc;
+  selc_old = text->selc;
 
   num = 0;
   while (true) {
@@ -1978,19 +1979,24 @@ static void txt_select_prefix(Text *text, const char *add)
       num++;
     }
   }
-  if (!curc_old) {
-    text->curc = 0;
-  }
-  else {
-    text->curc = curc_old + indentlen;
-  }
 
   while (num > 0) {
     text->curl = text->curl->prev;
     num--;
   }
 
-  /* caller must handle undo */
+  /* Keep the cursor left aligned if we don't have a selection. */
+  if (curc_old == 0 && !(text->curl == text->sell && curc_old == selc_old)) {
+    if (text->curl == text->sell) {
+      if (text->curc == text->selc) {
+        text->selc = 0;
+      }
+    }
+    text->curc = 0;
+  }
+  else {
+    text->curc = curc_old + indentlen;
+  }
 }
 
 /**



More information about the Bf-blender-cvs mailing list