summary refs log tree commit diff
path: root/ui.c
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2022-02-18 23:39:46 -0500
committerJune McEnroe <june@causal.agency>2022-02-18 23:39:46 -0500
commit573bc855a68766f38de2acb48bebc9d0adbf0a1f (patch)
tree18e2ffa24eba70eaf239987e242d21557b73fecb /ui.c
parentFix M-f ordering (diff)
downloadcatgirl-573bc855a68766f38de2acb48bebc9d0adbf0a1f.tar.gz
catgirl-573bc855a68766f38de2acb48bebc9d0adbf0a1f.zip
Simplify cursor positioning in input
Do some extra work by adding the portion before the cursor to the
input window twice, but simplify the interaction with the split
point. This fixes the awkward behaviour when moving the cursor
across colour codes where the code would be partially interpreted
up to the cursor.
Diffstat (limited to '')
-rw-r--r--ui.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/ui.c b/ui.c
index 369ed75..3df0cd6 100644
--- a/ui.c
+++ b/ui.c
@@ -791,6 +791,7 @@ static void inputUpdate(void) {
 		skip = buf;
 	}
 
+	int y, x;
 	wmove(input, 0, 0);
 	if (window->time && window->id != Network) {
 		whline(input, ' ', uiTime.width);
@@ -800,25 +801,24 @@ static void inputUpdate(void) {
 	waddstr(input, prefix);
 	waddstr(input, prompt);
 	waddstr(input, suffix);
+	getyx(input, y, x);
 
-	int y, x;
-	const char *ptr = skip;
+	int posx;
 	struct Style style = styleInput;
-	if (split && split < pos) {
-		ptr = inputStop(styleInput, &style, ptr, &buf[split]);
-		style = styleInput;
-		style.bg = Red;
-	}
-	ptr = inputStop(styleInput, &style, ptr, &buf[pos]);
-	getyx(input, y, x);
-	if (split && split >= pos) {
+	inputStop(styleInput, &style, skip, &buf[pos]);
+	getyx(input, y, posx);
+	wmove(input, y, x);
+
+	style = styleInput;
+	const char *ptr = skip;
+	if (split) {
 		ptr = inputStop(styleInput, &style, ptr, &buf[split]);
 		style = styleInput;
 		style.bg = Red;
 	}
 	inputAdd(styleInput, &style, ptr);
 	wclrtoeol(input);
-	wmove(input, y, x);
+	wmove(input, y, posx);
 }
 
 void uiWindows(void) {
10:46:21 -0400'>2021-09-15Factor out common parts of downgrade messagesJune McEnroe 2021-09-14Add downgrade IRC botJune McEnroe 2021-09-14Sort by title if authors matchJune McEnroe 2021-09-13Swap-remove tags as they're foundJune McEnroe 2021-09-12Replace htagml regex with strncmpJune McEnroe 2021-09-11Also defer printing comment for lone close-parensJune McEnroe 2021-09-10Publish "git-comment"June McEnroe 2021-09-10Add git comment --pretty optionJune McEnroe 2021-09-08Defer printing comment if line is blank or closing braceJune McEnroe 2021-09-08Up default min-repeat to 30 linesJune McEnroe 2021-09-08Handle dirty lines in git-commentJune McEnroe 2021-09-08Document and install git-commentJune McEnroe 2021-09-08Add repeat and all options to git-commentJune McEnroe 2021-09-08Add group threshold to git-commentJune McEnroe