There are several possibilities:
-
The widget has no
GdkWindow (i.e. the GTK_NO_WINDOW flag is set), so
it does not receive events (other than synthesized
expose events).
-
The event you're trying to monitor isn't in the
event mask for the widget's GdkWindow. Use gtk_widget_add_events() to add more
events to the mask.
-
The widget is a container, and some child widget is
"handling" the event by returning TRUE from the event signal
emission. Only "unhandled" events are propagated
from child to parent.
See the
section called Receiving GDK Events in GTK+ in
the chapter called GDK Basics for more
details on events and how they are passed to widgets.