Дайте пожалуйста внятное описание этого процесса.
С этими XIM-ами и XIC-иками уже голова пухнет.
Вообще Xserverr возвращает какие то странные коды для русских букв.
Что то в районе 1700..., причём, судя по всему, их взаимное насположение очень похоже на KOI8R,
т.е. они идут А, Б, Ц, Д, ....
В правильном юникоде русские буквы в районе 1100 находятся (правда относительное расположение я не смотрел, но уверен, что по алфавиту).
Локаль стоит ru_RU.UTF8 (впрочем пробовал другие, результат один).
Собственно что за чудная кодировка, в которой шлёт коды XServer и как его заставить слать юникод?
Вообще хочу, чтобы он сам обрабатывал все свои раскладки и прочий бред, и просто слал мне юникод (UCS-4 например).
Без всяких премудростей. Это можно как то сделать?
Можно даже без поддержки японских ракладок :) Хотя лучше с ними.
Вот примерный код, которым пытаюсь принимать сообщения.
Он всегда даёт 1700 с копейками. 1100 никак не получается :)
case KeyPress:
{
if (m_ic == 0) {
m_ic = XCreateIC(im,
XNInputStyle, XIMPreeditNothing + XIMStatusNothing,
XNClientWindow, m_window,
0);
if (m_ic == NULL) {
LOG_ERROR << "XCreateIC() failed";
abort();
}
}
if (XFilterEvent(&event, m_window) == True)
break;
wchar_t buffer[64];
KeySym key;
XwcLookupString(m_ic, &event.xkey, buffer, sizeof(buffer), &key, &st
LOG_INFO << PARAM(key) <<
PARAM((unsigned int)buffer[0]) <<
PARAM((unsigned int)buffer[1]) <<
PARAM((unsigned int)buffer[2]) <<
PARAM((unsigned int)buffer[3]) <<
PARAM((unsigned int)buffer[4]) <<
PARAM((unsigned int)buffer[5]) <<
PARAM((unsigned int)buffer[6]) <<
PARAM((unsigned int)buffer[6]);
if (status != XLookupKeySym && status != XLookupBoth) {
LOG_INFO << "Status not ok";
break;
}
onKeyDown(key);
...
в начале
// setlocale(LC_ALL, "");
im = XOpenIM(display, 0, 0, 0);
if (im == 0) {
LOG_ERROR << "Couldn't open input method";
return 1;
}
Примерно так. Вроде ничего не фэйлится.
Вообще где можно доки по этому XIM-у нормальные найти?
В нете только маны ищутся.
Вообще если есть какой нибудь исходник, где на чистом Xlib-е
корректно обрабатывается русский ввод (а если там ещё и рисуется через
libfreetype, то вообще сказка), буду ОЧЕНЬ благодарен.
Блин, с горя щас буду в Qt копаться :)

Ответ на:
комментарий
от bugmaker
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Как в XLib Вывести русские буквы ( в окне ) (2006)
- Форум Xlib etc. (2003)
- Форум Помощь в gluLookAt (2013)
- Форум [XIM]Ввод русских символов транслитом. (2010)
- Форум Самопроизвольный ввод текста (2024)
- Форум FF3 ввод текста (2008)
- Форум QT+ввод текста (2004)
- Форум XCreateIC(XIM im,...) (2002)
- Форум Неполадки с вводом текста. (2011)
- Форум Тормоза при вводе текста (2015)