keyboard: Don't use next_utf8_char() to go back where we came from

We go one utf8 char back and then one forward.  Just remember the original
position instead, which also avoids a warning about potentially
dereferencing a NULL return value from next_utf8_char().
diff --git a/clients/keyboard.c b/clients/keyboard.c
index 9c5cbc5..a6f7010 100644
--- a/clients/keyboard.c
+++ b/clients/keyboard.c
@@ -456,16 +456,6 @@
 	return NULL;
 }
 
-static const char *
-next_utf8_char(const char *p)
-{
-	if (*p == '\0')
-		return NULL;
-	for (++p; (*p & 0xc0) == 0x80; ++p)
-		;
-	return p;
-}
-
 static void
 delete_before_cursor(struct virtual_keyboard *keyboard)
 {
@@ -483,7 +473,7 @@
 		return;
 	}
 
-	end = next_utf8_char(start);
+	end = keyboard->surrounding_text + keyboard->surrounding_cursor;
 
 	wl_input_method_context_delete_surrounding_text(keyboard->context,
 							(start - keyboard->surrounding_text) - keyboard->surrounding_cursor,