Сначала необходимо включить нажатия клавиш (и, возможно, также нажатия клавиш) в маске события:
gtk_widget_add_events(my_drawing_area,
GDK_KEY_PRESS_MASK|GDK_KEY_RELEASE_MASK);
Затем вы можете подключиться к сигналу (ам):
g_signal_connect(my_drawing_area,"key-press-event",
my_key_press,my_user_data);
g_signal_connect(my_drawing_area,"key-release-event",
my_key_release,my_user_data);
И определите некоторые функции обратного вызова, например:
gboolean my_key_press(GtkWidget *widget,
GdkEventKey *event,
gpointer user_data)
{
return FALSE;
}
gboolean my_key_release(GtkWidget *widget,
GdkEventKey *event,
gpointer user_data)
{
return FALSE;
}
См. Документацию для GtkWidget , GObject Signals и GdkEvent для получения дополнительной информации.