LINUX.ORG.RU

События key_press_event & key_release_event + GtkEntry - несовместимы?


0

0

В общем ситуация - есть поле ввода тескта GtkEntry - в него что то водиться с помощбю магнитной карточки (на карточке содержится последовательность символов, заканчивающихся Ентером) - устройство ввода просто подстоединено к порту ПС/2 и иммитирует клаву - чтобы туда что то вводилось я к полю ввода коннекчу сигнал gtk_signal_connect_object(GTK_OBJECT (entrytext), "key_release_event",GTK_SIGNAL_FUNC (eventReleaseTemp), NULL); - но интересная особенность, Ентер, которым заканчивается последовательность символов записан на карточку кодом клавиши в нажатом но не отпущенном состоянии - значит я не могу прочитать этой функцией коннекта, когда заканчивается моя строка. Хорошо - я конекчу следующий сигнал gtk_signal_connect_object(GTK_OBJECT (entrytext), "key_press_event",GTK_SIGNAL_FUNC (eventEntryText), NULL); - с помощью него считывается Ентер все хорошо, но только поле ввода теперь не ЗАПОЛНЯЕТСЯ! ЧТО ДЕЛАТЬ? Читаю Ентер такой вот функцией void eventEntryText(GtkWidget *widget,GdkEvent *event, gpointer data) { gchar *work="Return"; GdkEventKey *key=(GdkEventKey *)event; g_print("I'm prease\n"); if (strcmp(work,gdk_keyval_name(key->keyval))==0) { stringforpassword=g_strdup_printf("%s\0", gtk_entry_get_text(GTK_ENTRY(entrytext))); gtk_signal_emit_by_name(GTK_OBJECT(dialogPassword),"destroy"); }

anonymous

возвращать в конце обработчика надо толи true, толи false (не помню навскидку), чтобы вызвался "предыдущий" обработчик для этих сигналов.

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

Thanks, уже разобрался - просто после сигнала нажатия имитирую сигнал отжатия. Все работает

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