summaryrefslogtreecommitdiff
path: root/0001-imwayland-Clamp-the-surrounding-string-end-correctly.patch
blob: 0ccb5c72f2a7152ab9db6b17fec1b7d5de268859 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
From d7fb15c822eabe22ffda19892153d69b0f4fc2f3 Mon Sep 17 00:00:00 2001
From: Carlos Garnacho <carlosg@gnome.org>
Date: Fri, 3 Apr 2020 12:44:37 +0200
Subject: [PATCH] imwayland: Clamp the surrounding string end correctly

In the paths where len > MAX_LEN and cursor/anchor are separated by
at least MAX_LEN from text edges, we were clamping the right end of
the surrounding string at MAX_LEN. Oops.

This end anchor may go as far as the string length, although just
up to len - MAX_LEN in real terms (due to the condition above that
caches cursor/anchor positions being near enough the text end).

Closes: https://gitlab.gnome.org/GNOME/gtk/-/issues/2565
---
 modules/input/imwayland.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/modules/input/imwayland.c b/modules/input/imwayland.c
index 8f697bec1b..12d18a0f64 100644
--- a/modules/input/imwayland.c
+++ b/modules/input/imwayland.c
@@ -322,7 +322,7 @@ notify_surrounding_text (GtkIMContextWayland *context)
           mid = MIN (context->surrounding.cursor_idx,
                      context->surrounding.anchor_idx) + (cursor_len / 2);
           a = MAX (0, mid - (MAX_LEN / 2));
-          b = MIN (MAX_LEN, mid + (MAX_LEN / 2));
+          b = MIN (len, mid + (MAX_LEN / 2));
 
           start = &context->surrounding.text[a];
           end = &context->surrounding.text[b];
-- 
2.25.2

bgstack15