summarylogtreecommitdiffstats
path: root/58b3145c90a4681bf1ee026f58e12bfb5cafe81a.patch
blob: f53529e5ca748c20c1120206a73ff10833bad7d2 (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
commit 58b3145c90a4681bf1ee026f58e12bfb5cafe81a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Mar 26 19:48:41 2021 -0400

    composetable: Limit algorithmic checking
    
    Only check for combinations of up to 2 dead keys with
    a base character. We don't want to spend ages generating
    all permutations of long sequences.

diff --git a/gtk/gtkcomposetable.c b/gtk/gtkcomposetable.c
index 512e35e61d..185f89fefe 100644
--- a/gtk/gtkcomposetable.c
+++ b/gtk/gtkcomposetable.c
@@ -1190,6 +1190,12 @@ gtk_check_algorithmically (const guint16 *compose_buffer,
 
   for (i = 0; i < n_compose && IS_DEAD_KEY (compose_buffer[i]); i++)
     ;
+
+  /* Allow at most 2 dead keys */
+  if (i > 2)
+    return FALSE;
+
+  /* Can't combine if there's no base character */
   if (i == n_compose)
     return TRUE;