609560b1cb
Currently, we select input events and GLX events conditionally, depending on whether the user has disabled event retrieval. We should, instead, unconditionally select input events even with event retrieval disabled because we need to guarantee that the Clutter internal state is maintained when calling clutter_x11_handle_event() without requiring applications or embedding toolkits to select events themselves. If we did that, we'd have to document the events to be selected, and also update applications and embedding toolkits each time we added a new mask, or a new class of events - something that's clearly not possible. See: http://bugzilla.clutter-project.org/show_bug.cgi?id=998 for the rationale of why we did conditional selection. It is now clear that a compositor should clear out the input region, since it cannot assume a perfectly clean slate coming from us. See: http://bugzilla.clutter-project.org/show_bug.cgi?id=2228 for an example of things that break if we do conditional event selection on GLX events. In that specific case, the X11 server ≤ 1.8 always pushed GLX events on the queue, even without selecting them; this has been fixed in the X11 server ≥ 1.9, which means that applications like Mutter or toolkit integration libraries like Clutter-GTK would stop working on recent Intel drivers providing the GLX_INTEL_swap_event extension. This change has been tested with Mutter and Clutter-GTK. |
||
---|---|---|
.. | ||
clutter-backend-glx.c | ||
clutter-backend-glx.h | ||
clutter-event-glx.c | ||
clutter-event-glx.h | ||
clutter-glx-texture-pixmap.c | ||
clutter-glx-texture-pixmap.h | ||
clutter-glx.h | ||
clutter-stage-glx.c | ||
clutter-stage-glx.h | ||
Makefile.am |