• Carlos Garcia Campos's avatar
    gtk: Add a way to do event capture · 9f4bfff1
    Carlos Garcia Campos authored
    This patch adds a capture phase to GTK+'s event propagation
    model. Events are first propagated from the toplevel (or the
    grab widget, if a grab is in place) down to the target widget
     and then back up. The second phase is using the existing
    ::event signal, the new capture phase is using a private
    API instead of a public signal for now.
    This mechanism can be used in many places where we currently
    have to prevent child widgets from getting events by putting
    an input-only window over them. It will also be used to implement
    kinetic scrolling in subsequent patches.
    We automatically request more motion events in behalf of
    the original widget if it listens to motion hints. So
    the capturing widget doesn't need to handle such
    implementation details.
    We are not making event capture part of the public API for 3.4,
    which is why there is no ::captured-event signal.
gtkmain.c 72.8 KB