LINUX.ORG.RU

оно ?

http://www.koders.com/c/fid808E00CB15BD3A9CB4EB6829B5DACE733147554B.aspx?s=cd...

/* The purpose of this event filter is to intercept XEvents before they get * processed (and thrown away) by GDK, and turn them into GDK events for a * proxy window. */ static GdkFilterReturn event_filter (GdkXEvent *gdk_xevent, GdkEvent *event, gpointer data) {

GdkEventKey *keyevent; GdkWindow *proxy = (GdkWindow *) data; XEvent *xevent = (XEvent *) gdk_xevent; KeyCode keycode = xevent->xkey.keycode; guint modifiers = xevent->xkey.state;

/* we're only interested in KeyPress events */ if (xevent->type == KeyPress) {

event->type = GDK_KEY_PRESS; keyevent = (GdkEventKey *) event; /* mapping between X and GDK modifier keys is trivial! :) */ keyevent->hardware_keycode = keycode; keyevent->keyval = 0; keyevent->length = 0; keyevent->send_event = FALSE; keyevent->state = (GdkModifierType) modifiers; keyevent->string = NULL; keyevent->time = GDK_CURRENT_TIME; keyevent->window = proxy;

return GDK_FILTER_TRANSLATE;

} else {

return GDK_FILTER_CONTINUE;

}

}

anonymous
()
Ответ на: комментарий от anonymous

Кажется, это не то - тут из события получаем hardware_keyval. А мне нужно из строки получить hardware_keyval и передать его кому надо...

Deleted
()

Какая-то путаница в понятиях. Насколько я понимаю, hardware keyval = keycode (в терминах X11). А GdkKeyval - это keysym в терминах X11? Вы в курсе, что в X11 keycode не имеет отношения к железу (точнее, имеет - но очень опосредованное)? Да, иксы позволяют по keysym узнать его keycode: XKeysymToKeycode. Что именно Вам надо?

svu ★★★★★
()
Ответ на: комментарий от svu

Мне именно keycode нужен - я использую библиотеку KeyboardDrawing (дhttp://svn.gnome.org/viewcvs/kbdraw/) для отрисовки клавиатуры на экране. И мне нужно букву преобразовать в keycode, для того чтобы затем ее подсветить.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.