Commit a5f9b185 authored by Owen Taylor's avatar Owen Taylor Committed by Owen Taylor
Browse files

gtk/gtktextlayout.c (line_display_iter_to_index) Only adjust the preedit

Thu Jan 29 18:08:06 2004  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtktextlayout.c (line_display_iter_to_index)
        * gtk/gtktextlayout.c (line_display_index_to_iter): Only
        adjust the preedit position for lines that include the
        preedit string. (#132353, Yao Zhang). How the heck
        did this work as well as it did?!?!

        * modules/input/gtkimcontextxim.c (gtk_im_context_xim_get_ic):
        Reverse change to change of XNFilterEvents event mask from
        #110493 -- it's documented and in the Xlib code an
        unsigned long.

        * modules/input/gtkimcontextxim.c (preedit_start_callback):
        Return -1 rather than void to indicate no length limit.
        (#129548)
parent bdca6b33
......@@ -2026,8 +2026,11 @@ line_display_iter_to_index (GtkTextLayout *layout,
index = gtk_text_iter_get_visible_line_index (iter);
if (index >= display->insert_index)
index += layout->preedit_len;
if (layout->preedit_len > 0 && display->insert_index >= 0)
{
if (index >= display->insert_index)
index += layout->preedit_len;
}
return index;
}
......@@ -2042,12 +2045,15 @@ line_display_index_to_iter (GtkTextLayout *layout,
g_return_if_fail (!_gtk_text_line_is_last (display->line,
_gtk_text_buffer_get_btree (layout->buffer)));
if (index >= display->insert_index + layout->preedit_len)
index -= layout->preedit_len;
else if (index > display->insert_index)
if (layout->preedit_len > 0 && display->insert_index >= 0)
{
index = display->insert_index;
trailing = 0;
if (index >= display->insert_index + layout->preedit_len)
index -= layout->preedit_len;
else if (index > display->insert_index)
{
index = display->insert_index;
trailing = 0;
}
}
_gtk_text_btree_get_iter_at_line (_gtk_text_buffer_get_btree (layout->buffer),
......
......@@ -966,7 +966,7 @@ gtk_im_context_xim_get_preedit_string (GtkIMContext *context,
*cursor_pos = context_xim->preedit_cursor;
}
static void
static int
preedit_start_callback (XIC xic,
XPointer client_data,
XPointer call_data)
......@@ -976,6 +976,8 @@ preedit_start_callback (XIC xic,
if (!context_xim->finalizing)
g_signal_emit_by_name (context, "preedit_start");
return -1; /* No length limit */
}
static void
......@@ -1276,7 +1278,7 @@ gtk_im_context_xim_get_ic (GtkIMContextXIM *context_xim)
* stroke if both key pressed and released events are filtered.
* (bugzilla #81759)
*/
guint32 mask = 0xaaaaaaaa;
gulong mask = 0xaaaaaaaa;
XGetICValues (xic,
XNFilterEvents, &mask,
NULL);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment