Teclado funciona parcialmente com GtkDialog no OpenEmbedded

estou com um problema tentando utilizar um GtkDialog no OpenEmbedded Linux. A dialog funciona no PC mas no OpenEmbedded o teclado funciona só Alt + C e Alt + O pra fechar a dialog.
Plataforma: Gumstix Verdex Pro XM4-BT
OS: OpenEmbedded Linux, Kernel 2.6.21 + DirectFB, inicializado pelo cartão SD.
Bibliotecas: libGlade, Gtk+ 2.0, GLib, pthreads, Sqlite3, Xtest...
Compilador: GCC 4.2.4 no Ubuntu 8.10 e GCC 4.1.3 no Ubuntu 9.04
Problema: O GtkDialog funciona corretamente no ubuntu instalado em um PC, mas no Gumstix, dentro do OpenEmbedded, as teclas de setas e ENTER não funcionam na Dialog.
Eu crio a dialog com a segunte chamada:
dialog = gtk_message_dialog_new (pai,
GTK_DIALOG_MODAL,
tipoMensagem,
tipoMensagem == GTK_MESSAGE_QUESTION ? GTK_BUTTONS_OK_CANCEL : GTK_BUTTONS_OK,
fmt,
args);
Antes de chamar o "run" do dialog, eu já tentei capturar as teclas para ver se a dialog está recebendo elas e jogo para a tela. Já tentei dessas duas formas:
g_signal_connect(G_OBJECT(dialog),
"key-press-event",
G_CALLBACK(dialogKeyPress),
dialog);
e
keySnooper = gtk_key_snooper_install ((GtkKeySnoopFunc)dialogKeyPress, dialog);
dialogKeyPress eu escrevi para pegar o evento (g_signal_connect) ou o keypress (gtk_key_snooper_install) para mostrar a tecla capturada.
Ambas as soluções funcionam no PC, mas não no OpenEmbedded. No PC eu consigo capturar as teclas e ainda assim o dialog funcina normalmente, mas no OpenEmbedded apenas algumas teclas são capturadas, e o Dialog não funciona, pois abre a dialog e não fecha mais com Keysnooper.
No caso do Keysnooper, a função dialogKeyPress retorna FALSE para que a dialog processe normalmente, mas mesmo assim não vai. Já tentei com TRUE para teste, mesma coisa. Parece que o OpenEmbedded não propaga o evento, morrendo na minha função, diferente do que é feito no ubuntu.
Sem instalar o Keysnooper, eu consigo utilizar um teclado USB e fechar a dialog usando Alt + c ou Alt + o, mas daí o meu teclado de membrana não opera. Mesmo sem o keysnooper, as teclas de setas e ENTER do teclado USB não operam na Dialog, só Alt + C e Alt + O mesmo (referentes ao botão Cancel e Ok...)
Já desativei as rotinas de leitura do teclado de membrana para ver se estava interferindo na Dialog, e continua a mesma coisa.
Opções utilizadas no GCC:
`pkg-config --cflags --libs libglade-2.0 gtk+-2.0` -rdynamic -lsqlite3 -lpthread -lX11 -lXtst
Aguém tem alguma idéia? Agradeço muito...
Plataforma: Gumstix Verdex Pro XM4-BT
OS: OpenEmbedded Linux, Kernel 2.6.21 + DirectFB, inicializado pelo cartão SD.
Bibliotecas: libGlade, Gtk+ 2.0, GLib, pthreads, Sqlite3, Xtest...
Compilador: GCC 4.2.4 no Ubuntu 8.10 e GCC 4.1.3 no Ubuntu 9.04
Problema: O GtkDialog funciona corretamente no ubuntu instalado em um PC, mas no Gumstix, dentro do OpenEmbedded, as teclas de setas e ENTER não funcionam na Dialog.
Eu crio a dialog com a segunte chamada:
dialog = gtk_message_dialog_new (pai,
GTK_DIALOG_MODAL,
tipoMensagem,
tipoMensagem == GTK_MESSAGE_QUESTION ? GTK_BUTTONS_OK_CANCEL : GTK_BUTTONS_OK,
fmt,
args);
Antes de chamar o "run" do dialog, eu já tentei capturar as teclas para ver se a dialog está recebendo elas e jogo para a tela. Já tentei dessas duas formas:
g_signal_connect(G_OBJECT(dialog),
"key-press-event",
G_CALLBACK(dialogKeyPress),
dialog);
e
keySnooper = gtk_key_snooper_install ((GtkKeySnoopFunc)dialogKeyPress, dialog);
dialogKeyPress eu escrevi para pegar o evento (g_signal_connect) ou o keypress (gtk_key_snooper_install) para mostrar a tecla capturada.
Ambas as soluções funcionam no PC, mas não no OpenEmbedded. No PC eu consigo capturar as teclas e ainda assim o dialog funcina normalmente, mas no OpenEmbedded apenas algumas teclas são capturadas, e o Dialog não funciona, pois abre a dialog e não fecha mais com Keysnooper.
No caso do Keysnooper, a função dialogKeyPress retorna FALSE para que a dialog processe normalmente, mas mesmo assim não vai. Já tentei com TRUE para teste, mesma coisa. Parece que o OpenEmbedded não propaga o evento, morrendo na minha função, diferente do que é feito no ubuntu.
Sem instalar o Keysnooper, eu consigo utilizar um teclado USB e fechar a dialog usando Alt + c ou Alt + o, mas daí o meu teclado de membrana não opera. Mesmo sem o keysnooper, as teclas de setas e ENTER do teclado USB não operam na Dialog, só Alt + C e Alt + O mesmo (referentes ao botão Cancel e Ok...)
Já desativei as rotinas de leitura do teclado de membrana para ver se estava interferindo na Dialog, e continua a mesma coisa.
Opções utilizadas no GCC:
`pkg-config --cflags --libs libglade-2.0 gtk+-2.0` -rdynamic -lsqlite3 -lpthread -lX11 -lXtst
Aguém tem alguma idéia? Agradeço muito...