xserver-multidpi/present
Michel Dänzer c833c0866f present: Handle event mask updates as specified v2
From the Present extension specification:

 An event context is associated with a specific window; using
 an existing event context with a different window generates
 a Match error.

 If eventContext specifies an existing event context, then if
 eventMask is empty, PresentSelectInput deletes the specified
 context, otherwise the specified event context is changed to
 select a different set of events.

 If eventContext is an unused XID, then if eventMask is empty
 no operation is performed. Otherwise, a new event context is
 created selecting the specified events.

Without this change, there's no way for a client to explicitly change
or destroy an existing event mask entry. Trying to do so as specified
above would just result in a protocol error.

v2: (Keith Packard)
* Use dixLookupResourceByType instead of walking window_priv->events
* Return BadMatch if the existing event context is associated with a
  different window or client
* Call LEGAL_NEW_RESOURCE again when creating a new event context
* Drop invalid "leak fix"

Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2016-07-30 15:43:54 -07:00
..
Makefile.am present: Add Present extension 2013-10-31 16:59:18 -07:00
present_event.c present: Handle event mask updates as specified v2 2016-07-30 15:43:54 -07:00
present_fake.c Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
present_fence.c present: Block for wait_fence in present_execute 2013-11-20 13:12:30 -08:00
present_notify.c present: Add Present extension 2013-10-31 16:59:18 -07:00
present_priv.h present: When cancelling a pending synchronous flip, requeue it 2015-12-07 14:25:43 -05:00
present_request.c present: Handle event mask updates as specified v2 2016-07-30 15:43:54 -07:00
present_screen.c present: Make window MSC offset 0 initially 2014-07-31 00:03:53 -07:00
present.c present: Only call restore_screen_pixmap once from set_abort_flip 2016-07-28 10:12:44 +09:00
present.h glx/present: Only send GLX_BufferSwapComplete for PresentCompleteKindPixmap 2014-09-11 18:19:41 -07:00
presentext.h present: Add Present extension 2013-10-31 16:59:18 -07:00