tx: move IME variables into XWindow ime embedded struct - st - [fork] customize… | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 99de33395126fc9708f442d155e737b9182f6ef4 | |
parent 895e5b50a8cc835c19a45e1e328eb4dc78f5fd0c | |
Author: Quentin Rameau <[email protected]> | |
Date: Sun, 2 Feb 2020 15:37:29 +0100 | |
x: move IME variables into XWindow ime embedded struct | |
Diffstat: | |
M x.c | 26 ++++++++++++++------------ | |
1 file changed, 14 insertions(+), 12 deletions(-) | |
--- | |
diff --git a/x.c b/x.c | |
t@@ -94,8 +94,10 @@ typedef struct { | |
Drawable buf; | |
GlyphFontSpec *specbuf; /* font spec buffer used for rendering */ | |
Atom xembed, wmdeletewin, netwmname, netwmpid; | |
- XIM xim; | |
- XIC xic; | |
+ struct { | |
+ XIM xim; | |
+ XIC xic; | |
+ } ime; | |
Draw draw; | |
Visual *vis; | |
XSetWindowAttributes attrs; | |
t@@ -1026,18 +1028,18 @@ ximopen(Display *dpy) | |
{ | |
XIMCallback destroy = { .client_data = NULL, .callback = ximdestroy }; | |
- if ((xw.xim = XOpenIM(xw.dpy, NULL, NULL, NULL)) == NULL) { | |
+ if ((xw.ime.xim = XOpenIM(xw.dpy, NULL, NULL, NULL)) == NULL) { | |
XSetLocaleModifiers("@im=local"); | |
- if ((xw.xim = XOpenIM(xw.dpy, NULL, NULL, NULL)) == NULL) { | |
+ if ((xw.ime.xim = XOpenIM(xw.dpy, NULL, NULL, NULL)) == NULL) { | |
XSetLocaleModifiers("@im="); | |
- if ((xw.xim = XOpenIM(xw.dpy, NULL, NULL, NULL)) == NU… | |
+ if ((xw.ime.xim = XOpenIM(xw.dpy, NULL, NULL, NULL)) =… | |
die("XOpenIM failed. Could not open input devi… | |
} | |
} | |
- if (XSetIMValues(xw.xim, XNDestroyCallback, &destroy, NULL) != NULL) | |
+ if (XSetIMValues(xw.ime.xim, XNDestroyCallback, &destroy, NULL) != NUL… | |
die("XSetIMValues failed. Could not set input method value.\n"… | |
- xw.xic = XCreateIC(xw.xim, XNInputStyle, XIMPreeditNothing | XIMStatus… | |
- XNClientWindow, xw.win, XNFocusWindow, xw.win,… | |
+ xw.xic = XCreateIC(xw.ime.xim, XNInputStyle, XIMPreeditNothing | XIMSt… | |
+ XNClientWindow, xw.win, XNFocusWindow, xw.win, NULL… | |
if (xw.xic == NULL) | |
die("XCreateIC failed. Could not obtain input method.\n"); | |
} | |
t@@ -1053,7 +1055,7 @@ ximinstantiate(Display *dpy, XPointer client, XPointer c… | |
void | |
ximdestroy(XIM xim, XPointer client, XPointer call) | |
{ | |
- xw.xim = NULL; | |
+ xw.ime.xim = NULL; | |
XRegisterIMInstantiateCallback(xw.dpy, NULL, NULL, NULL, | |
ximinstantiate, NULL); | |
} | |
t@@ -1682,13 +1684,13 @@ focus(XEvent *ev) | |
return; | |
if (ev->type == FocusIn) { | |
- XSetICFocus(xw.xic); | |
+ XSetICFocus(xw.ime.xic); | |
win.mode |= MODE_FOCUSED; | |
xseturgency(0); | |
if (IS_SET(MODE_FOCUS)) | |
ttywrite("\033[I", 3, 0); | |
} else { | |
- XUnsetICFocus(xw.xic); | |
+ XUnsetICFocus(xw.ime.xic); | |
win.mode &= ~MODE_FOCUSED; | |
if (IS_SET(MODE_FOCUS)) | |
ttywrite("\033[O", 3, 0); | |
t@@ -1752,7 +1754,7 @@ kpress(XEvent *ev) | |
if (IS_SET(MODE_KBDLOCK)) | |
return; | |
- len = XmbLookupString(xw.xic, e, buf, sizeof buf, &ksym, &status); | |
+ len = XmbLookupString(xw.ime.xic, e, buf, sizeof buf, &ksym, &status); | |
/* 1. shortcuts */ | |
for (bp = shortcuts; bp < shortcuts + LEN(shortcuts); bp++) { | |
if (ksym == bp->keysym && match(bp->mod, e->state)) { |