Sends an event to a widget, propagating the event to parent widgets
if the event remains unhandled. Events received by GTK+ from GDK
normally begin in gtk_main_do_event(). Depending on the type of
event, existence of modal dialogs, grabs, etc., the event may be
propagated; if so, this function is used. gtk_propagate_event()
calls gtk_widget_event() on each widget it decides to send the
event to. So gtk_widget_event() is the lowest-level function; it
simply emits the "event" and possibly an event-specific signal on a
widget. gtk_propagate_event() is a bit higher-level, and
gtk_main_do_event() is the highest level.
All that said, you most likely don't want to use any of these
functions; synthesizing events is rarely needed. Consider asking on
the mailing list for better ways to achieve your goals. For
example, use gdk_window_invalidate_rect() or
gtk_widget_queue_draw() instead of making up expose events.
Sends an event to a widget, propagating the event to parent widgets if the event remains unhandled. Events received by GTK+ from GDK normally begin in gtk_main_do_event(). Depending on the type of event, existence of modal dialogs, grabs, etc., the event may be propagated; if so, this function is used. gtk_propagate_event() calls gtk_widget_event() on each widget it decides to send the event to. So gtk_widget_event() is the lowest-level function; it simply emits the "event" and possibly an event-specific signal on a widget. gtk_propagate_event() is a bit higher-level, and gtk_main_do_event() is the highest level. All that said, you most likely don't want to use any of these functions; synthesizing events is rarely needed. Consider asking on the mailing list for better ways to achieve your goals. For example, use gdk_window_invalidate_rect() or gtk_widget_queue_draw() instead of making up expose events.