C gtk X i klawiatura

Witajcie! Tworzę okno dla aplikacji. Aplikacja potrzebuje przechwytywania wciskanych klawiszy. COś takiego da się niby zrobić bezpośrednio w gtk, ale chyba wykracza to poza moje kompetencje. W internetach znalazłem fajny kod robiący to samo z X Serverem. Znaczy, przechwytujący wciśnięty klawisz. Ktoś wie, czy po stworzeniu okna w gtk da się jakoś X-em przechwytywać te klawisze? Piszę w C

Próbowałem zrobić tak.

#include <gdk/gdk.h>

int key_press(int key)

{

GdkEventKey *e;

if(e->type == GDK_KEY_PRESS && e->keyval == key)

{

return 1;

}

else

{

return 0;

}

return 0;

}

ale jest naruszenie ochrony pamięci.