Add implicitGrab field to GrabInfoRec.
Is set when passive grab is implicit as result of a ButtonPress event. If this is the case, we need to store the XI mask as well as the core mask to ensure delivery of XI events during the grab's lifetime. Remove all core grabs on other devices when client issues a GrabPointer or GrabKeyboard request. Let's assume that the client really only wants one device to interact, so this seems like a reasonable solution.
This commit is contained in:
@@ -333,9 +333,11 @@ typedef struct {
|
||||
#define FROZEN_NO_EVENT 5
|
||||
#define FROZEN_WITH_EVENT 6
|
||||
#define THAW_OTHERS 7
|
||||
|
||||
typedef struct _GrabInfoRec {
|
||||
TimeStamp grabTime;
|
||||
Bool fromPassiveGrab;
|
||||
TimeStamp grabTime;
|
||||
Bool fromPassiveGrab; /* true if from passive grab */
|
||||
Bool implicitGrab; /* implicit from ButtonPress */
|
||||
GrabRec activeGrab;
|
||||
GrabPtr grab;
|
||||
CARD8 activatingKey;
|
||||
|
||||
Reference in New Issue
Block a user