1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-07-02 03:52:49 -05:00

Support for dead keys and compose sequences on Unix, by instantiating

a GtkIMMulticontext and having that filter most keypresses. I think
I've got this right so that it doesn't break any previous deliberate
keyboard-handling behaviour that's now _after_ the 'if (filter
keypress) return' statement.

[originally from svn r9567]
This commit is contained in:
Simon Tatham
2012-06-17 07:26:23 +00:00
parent bc6e0952ef
commit 7fc8db15b2
2 changed files with 62 additions and 22 deletions

View File

@ -29,7 +29,6 @@ int mb_to_wc(int codepage, int flags, const char *mbstr, int mblen,
mbstate_t state;
memset(&state, 0, sizeof state);
setlocale(LC_CTYPE, "");
while (mblen > 0) {
size_t i = mbrtowc(wcstr+n, mbstr, (size_t)mblen, &state);
@ -40,8 +39,6 @@ int mb_to_wc(int codepage, int flags, const char *mbstr, int mblen,
mblen -= i;
}
setlocale(LC_CTYPE, "C");
return n;
} else if (codepage == CS_NONE) {
int n = 0;
@ -73,7 +70,6 @@ int wc_to_mb(int codepage, int flags, const wchar_t *wcstr, int wclen,
int n = 0;
memset(&state, 0, sizeof state);
setlocale(LC_CTYPE, "");
while (wclen > 0) {
int i = wcrtomb(output, wcstr[0], &state);
@ -85,8 +81,6 @@ int wc_to_mb(int codepage, int flags, const wchar_t *wcstr, int wclen,
wclen--;
}
setlocale(LC_CTYPE, "C");
return n;
} else if (codepage == CS_NONE) {
int n = 0;