|
|
@ -1061,6 +1061,7 @@ void |
|
|
|
ximdestroy(XIM xim, XPointer client, XPointer call) |
|
|
|
{ |
|
|
|
xw.ime.xim = NULL; |
|
|
|
xw.ime.xic = NULL; |
|
|
|
XRegisterIMInstantiateCallback(xw.dpy, NULL, NULL, NULL, |
|
|
|
ximinstantiate, NULL); |
|
|
|
XFree(xw.ime.spotlist); |
|
|
@ -1692,13 +1693,15 @@ focus(XEvent *ev) |
|
|
|
return; |
|
|
|
|
|
|
|
if (ev->type == FocusIn) { |
|
|
|
XSetICFocus(xw.ime.xic); |
|
|
|
if (xw.ime.xic) |
|
|
|
XSetICFocus(xw.ime.xic); |
|
|
|
win.mode |= MODE_FOCUSED; |
|
|
|
xseturgency(0); |
|
|
|
if (IS_SET(MODE_FOCUS)) |
|
|
|
ttywrite("\033[I", 3, 0); |
|
|
|
} else { |
|
|
|
XUnsetICFocus(xw.ime.xic); |
|
|
|
if (xw.ime.xic) |
|
|
|
XUnsetICFocus(xw.ime.xic); |
|
|
|
win.mode &= ~MODE_FOCUSED; |
|
|
|
if (IS_SET(MODE_FOCUS)) |
|
|
|
ttywrite("\033[O", 3, 0); |
|
|
|