mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-04-18 19:48:05 -05:00
Add an API for passing pre-edit text to terminal; call from GTK
The terminal code doesn't yet do anything with the text other than feed it to a debugging printf. The call uses UTF-8 and expects the terminal to copy the string because that's compatible with gtk_im_context_get_preedit_string().
This commit is contained in:
parent
227b9ae470
commit
194ca31cc3
1
putty.h
1
putty.h
@ -2044,6 +2044,7 @@ void term_notify_palette_changed(Terminal *term);
|
||||
void term_notify_window_pos(Terminal *term, int x, int y);
|
||||
void term_notify_window_size_pixels(Terminal *term, int x, int y);
|
||||
void term_palette_override(Terminal *term, unsigned osc4_index, rgb rgb);
|
||||
void term_set_preedit_text(Terminal *term, char *preedit_text);
|
||||
|
||||
typedef enum SmallKeypadKey {
|
||||
SKK_HOME, SKK_END, SKK_INSERT, SKK_DELETE, SKK_PGUP, SKK_PGDN,
|
||||
|
@ -8106,3 +8106,13 @@ void term_notify_window_size_pixels(Terminal *term, int x, int y)
|
||||
term->winpixsize_x = x;
|
||||
term->winpixsize_y = y;
|
||||
}
|
||||
|
||||
/*
|
||||
* Set the pre-edit text as required by an input method. preedit_text
|
||||
* is expected to be in UTF-8. It's NULL if no pre-edit text is
|
||||
* required. It's owned by the caller and must not be freed here.
|
||||
*/
|
||||
void term_set_preedit_text(Terminal *term, char *preedit_text)
|
||||
{
|
||||
debug("Pre-edit: %s\n", preedit_text);
|
||||
}
|
||||
|
@ -2150,6 +2150,7 @@ void input_method_preedit_changed_event(GtkIMContext *imc, gpointer data)
|
||||
string_string, (int)cursor_pos);
|
||||
sfree(string_string);
|
||||
#endif
|
||||
term_set_preedit_text(inst->term, preedit_string);
|
||||
g_free(preedit_string);
|
||||
}
|
||||
|
||||
@ -2160,6 +2161,7 @@ void input_method_preedit_end_event(GtkIMContext *imc, gpointer data)
|
||||
#ifdef KEY_EVENT_DIAGNOSTICS
|
||||
debug(" - IM preedit-end event\n");
|
||||
#endif
|
||||
term_set_preedit_text(inst->term, NULL);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user