clutter: Make ClutterIMEvent able to store preedit anchor position
This is something that is exported through the protocol, but we don't pass forward. Make the events able to store this anchor so that we can do that. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2517>
This commit is contained in:
parent
3d94c7cc2d
commit
190301f66b
@ -578,6 +578,7 @@ struct _ClutterIMEvent
|
|||||||
|
|
||||||
char *text;
|
char *text;
|
||||||
int32_t offset;
|
int32_t offset;
|
||||||
|
int32_t anchor;
|
||||||
uint32_t len;
|
uint32_t len;
|
||||||
ClutterPreeditResetMode mode;
|
ClutterPreeditResetMode mode;
|
||||||
};
|
};
|
||||||
|
@ -282,6 +282,7 @@ clutter_input_method_put_im_event (ClutterInputMethod *im,
|
|||||||
ClutterEventType event_type,
|
ClutterEventType event_type,
|
||||||
const char *text,
|
const char *text,
|
||||||
int32_t offset,
|
int32_t offset,
|
||||||
|
int32_t anchor,
|
||||||
uint32_t len,
|
uint32_t len,
|
||||||
ClutterPreeditResetMode mode)
|
ClutterPreeditResetMode mode)
|
||||||
{
|
{
|
||||||
@ -299,6 +300,7 @@ clutter_input_method_put_im_event (ClutterInputMethod *im,
|
|||||||
event = clutter_event_new (event_type);
|
event = clutter_event_new (event_type);
|
||||||
event->im.text = g_strdup (text);
|
event->im.text = g_strdup (text);
|
||||||
event->im.offset = offset;
|
event->im.offset = offset;
|
||||||
|
event->im.anchor = anchor;
|
||||||
event->im.len = len;
|
event->im.len = len;
|
||||||
event->im.mode = mode;
|
event->im.mode = mode;
|
||||||
clutter_event_set_device (event, keyboard);
|
clutter_event_set_device (event, keyboard);
|
||||||
@ -317,7 +319,7 @@ clutter_input_method_commit (ClutterInputMethod *im,
|
|||||||
{
|
{
|
||||||
g_return_if_fail (CLUTTER_IS_INPUT_METHOD (im));
|
g_return_if_fail (CLUTTER_IS_INPUT_METHOD (im));
|
||||||
|
|
||||||
clutter_input_method_put_im_event (im, CLUTTER_IM_COMMIT, text, 0, 0,
|
clutter_input_method_put_im_event (im, CLUTTER_IM_COMMIT, text, 0, 0, 0,
|
||||||
CLUTTER_PREEDIT_RESET_CLEAR);
|
CLUTTER_PREEDIT_RESET_CLEAR);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -328,7 +330,8 @@ clutter_input_method_delete_surrounding (ClutterInputMethod *im,
|
|||||||
{
|
{
|
||||||
g_return_if_fail (CLUTTER_IS_INPUT_METHOD (im));
|
g_return_if_fail (CLUTTER_IS_INPUT_METHOD (im));
|
||||||
|
|
||||||
clutter_input_method_put_im_event (im, CLUTTER_IM_DELETE, NULL, offset, len,
|
clutter_input_method_put_im_event (im, CLUTTER_IM_DELETE, NULL,
|
||||||
|
offset, offset, len,
|
||||||
CLUTTER_PREEDIT_RESET_CLEAR);
|
CLUTTER_PREEDIT_RESET_CLEAR);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -361,7 +364,7 @@ clutter_input_method_set_preedit_text (ClutterInputMethod *im,
|
|||||||
g_return_if_fail (CLUTTER_IS_INPUT_METHOD (im));
|
g_return_if_fail (CLUTTER_IS_INPUT_METHOD (im));
|
||||||
|
|
||||||
clutter_input_method_put_im_event (im, CLUTTER_IM_PREEDIT, preedit,
|
clutter_input_method_put_im_event (im, CLUTTER_IM_PREEDIT, preedit,
|
||||||
cursor, 0, mode);
|
cursor, cursor, 0, mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Loading…
Reference in New Issue
Block a user