[gtk/matthiasc/for-master] imwayland: Return limited preedit attributes



commit da71a379457ede018308ad0ce7605d90586a9f3b
Author: Matthias Clasen <mclasen redhat com>
Date:   Wed Feb 17 22:57:41 2021 -0500

    imwayland: Return limited preedit attributes
    
    It should not matter, but it is the right thing to
    do to limit the preedit attributes to the length
    of the preedit text.

 gtk/gtkimcontextwayland.c | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)
---
diff --git a/gtk/gtkimcontextwayland.c b/gtk/gtkimcontextwayland.c
index c5e0093584..915ad9e854 100644
--- a/gtk/gtkimcontextwayland.c
+++ b/gtk/gtkimcontextwayland.c
@@ -606,13 +606,23 @@ gtk_im_context_wayland_get_preedit_string (GtkIMContext   *context,
 
   if (attrs)
     {
+      PangoAttribute *attr;
+      guint len = strlen (preedit_str);
+
       if (!*attrs)
         *attrs = pango_attr_list_new ();
-      pango_attr_list_insert (*attrs,
-                              pango_attr_underline_new (PANGO_UNDERLINE_SINGLE));
+
+      attr = pango_attr_underline_new (PANGO_UNDERLINE_SINGLE);
+      attr->start_index = 0;
+      attr->end_index = len;
+      pango_attr_list_insert (*attrs, attr);
+
       /* enable fallback, since IBus will send us things like ⎄ */
-      pango_attr_list_insert (*attrs,
-                              pango_attr_fallback_new (TRUE));
+      attr = pango_attr_fallback_new (TRUE);
+      attr->start_index = 0;
+      attr->end_index = len;
+      pango_attr_list_insert (*attrs, attr);
+
       if (context_wayland->current_preedit.cursor_begin
           != context_wayland->current_preedit.cursor_end)
         {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]