Fixed: Dead keys under Linux (Ubuntu was using ibus input method)

This commit is contained in:
kervala 2016-01-02 11:33:18 +01:00
parent ac7f5ffa28
commit c1d8c9523b

View file

@ -84,26 +84,36 @@ void CUnixEventEmitter::createIM()
XModifierKeymap *g_mod_map = XGetModifierMapping(_dpy); XModifierKeymap *g_mod_map = XGetModifierMapping(_dpy);
char *modifiers = XSetLocaleModifiers(getenv("XMODIFIERS"));
_im = XOpenIM(_dpy, NULL, NULL, NULL); _im = XOpenIM(_dpy, NULL, NULL, NULL);
if (_im) if (_im == NULL)
{ {
_ic = XCreateIC(_im, XNInputStyle, XIMPreeditNothing | XIMStatusNothing, XNClientWindow, _win, XNFocusWindow, _win, NULL); XSetLocaleModifiers("@im=local");
// XSetICFocus(_ic);
} _im = XOpenIM(_dpy, NULL, NULL, NULL);
else
{
_ic = 0;
nlwarning("XCreateIM failed");
}
if (!_ic) if (_im == NULL)
{ {
nlwarning("XCreateIC failed"); XSetLocaleModifiers("@im=");
}
_im = XOpenIM(_dpy, NULL, NULL, NULL);
if (_im == NULL)
{
nlwarning("XOpenIM failed");
}
}
}
if (_im)
{
_ic = XCreateIC(_im, XNInputStyle, XIMPreeditNothing | XIMStatusNothing, XNClientWindow, _win, XNFocusWindow, _win, NULL);
if (!_ic)
{
nlwarning("XCreateIC failed");
}
}
#endif #endif
} }