#ifdef HAVE_XOPENIM
// This part is the full blown Input Method manager for X11R5 and up.
// For the plain-and-old-X11R4 version, see later.
-
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/keysym.h>
void InitLyXLookup(Display * display, Window window)
{
xic = 0;
-
+
+ lyxerr[Debug::KEY]
+ << "InitLyXLookup: creating an input context."
+ << endl;
+
// This part could be done before opening display
setlocale(LC_CTYPE, "");
if (!XSupportsLocale()) {
<< "LyXLookupString: found DeadEvent" << endl;
return 0;
}
+#if 1
if (XFilterEvent (event, None)) {
- //lyxerr <<"XFilterEvent");
+ lyxerr[Debug::KEY] <<"XFilterEvent" << endl;
*keysym_return = NoSymbol;
return 0;
}
+#endif
if (event->type != KeyPress)
lyxerr << "LyXLookupString: wrong event type"
<< event->type << endl;
result = XmbLookupString(xic, &event->xkey, buffer_return,
bytes_buffer, keysym_return,
&status_return);
- switch(status_return) {
+ switch (status_return) {
+ case XBufferOverflow:
+ lyxerr[Debug::KEY] << "XBufferOverflow" << endl;
+ break;
case XLookupBoth:
- //lyxerr <<"XLookupBoth");
+ lyxerr[Debug::KEY] << "XLookupBoth "
+ << string(buffer_return, result)
+ << endl;
break;
case XLookupChars:
- //lyxerr <<"XLookupChars");
+ lyxerr[Debug::KEY] << "XLookupChars "
+ << string(buffer_return, result)
+ << endl;
+
*keysym_return = NoSymbol;
break;
case XLookupKeySym:
- //lyxerr <<"XLookupKeySym");
+ lyxerr[Debug::KEY] << "XLookupKeySym" << endl;
result = 0;
break;
- default:
- //lyxerr <<"default");
+ case XLookupNone:
+ lyxerr[Debug::KEY] << "XLookupNone" << endl;
*keysym_return = NoSymbol;
result = 0;
break;
+ default:
+ lyxerr << "Unknown status_return from"
+ " XmbLookupString" << endl;
+ break;
}
} else {
result = XLookupString(&event->xkey, buffer_return,
return result;
}
+
// This is called after the main window has been destroyed
void CloseLyXLookup()
{
}
#endif // HAVE_XOPENIM
+