On Sat, Sep 08, 2007 at 02:21:11PM -0700, Tom Trebisky wrote: > I have spent a couple of half-days trying to get keyboard events from a > GTK drawing area with no luck,
I suppose you have read thread http://mail.gnome.org/archives/gtk-list/2007-September/msg00015.html > I am getting mouse events nicely from the drawing area, but have been > entirely stumped in getting keyboard events. I have done google searches > on the topic and taken the advice given, the code that I think is > relevant is: > > GTK_WIDGET_SET_FLAGS ( da, GTK_CAN_FOCUS ); This is OK. > g_signal_connect ( GTK_OBJECT(da), "focus_event", > GTK_SIGNAL_FUNC(focus_handler), NULL ); This is written in some archaic dialect (although not entirely, the corresponding archaic counterpart of g_signal_connect() is gtk_signal_connect()). Code written in the last 5 years should read g_signal_connect(da, "focus-event", G_CALLBACK(focus_handler), NULL); Nevertheless, the functionality is the same. > gtk_widget_add_events ( GTK_WIDGET(da), GDK_FOCUS_CHANGE ); And this is the bug. GDK_FOCUS_CHANGE is not an event mask (i.e. GdkEventMask value), it's an event type (i.e. GdkEventType valye). It should be GDK_FOCUS_CHANGE_MASK. Ditto in the key press case. Also ensure you add events before the widget is realized. Yeti -- http://gwyddion.net/ _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list