1XSELECTEXTENSIONEVENT(libmansuffix) 2=================================== 3 4NAME 5---- 6 7 XSelectExtensionEvent, XGetSelectedExtensionEvents - select 8 extension events, get the list of currently selected extension 9 events 10 11SYNOPSIS 12-------- 13 14 #include <X11/extensions/XInput.h> 15 16 XSelectExtensionEvent( Display *display, 17 Window w, 18 XEventClass *event_list, 19 int event_count); 20 21 XGetSelectedExtensionEvents( Display *display, 22 Window w, 23 int *this_client_event_count_return, 24 XEventClass **this_client_event_list_return, 25 int *all_clients_event_count_return, 26 XEventClass **all_clients_event_list_return); 27 28 display 29 Specifies the connection to the X server. 30 31 w 32 Specifies the window whose events you are interested in. 33 34 event_list 35 Specifies the list of event classes that describe the 36 events you are interested in. 37 38 event_count 39 Specifies the count of event classes in the event list. 40 41 this_client_event_count_return 42 Returns the count of event classes selected by this 43 client. 44 45 this_client_event_list_return 46 Returns a pointer to the list of event classes selected 47 by this client. 48 49 all_clients_event_count_return 50 Returns the count of event classes selected by all 51 clients. 52 53 all_clients_event_list_return 54 Returns a pointer to the list of event classes selected 55 by all clients. 56 57DESCRIPTION 58----------- 59 60 The XSelectExtensionEvent request causes the X server to report 61 the events associated with the specified list of event classes. 62 Initially, X will not report any of these events. Events are 63 reported relative to a window. If a window is not interested in 64 a device event, it usually propagates to the closest ancestor 65 that is interested, unless the do_not_propagate mask prohibits 66 it. 67 68 Multiple clients can select for the same events on the same 69 window with the following restrictions: 70 * Multiple clients can select events on the same window 71 because their event masks are disjoint. When the X server 72 generates an event, it reports it to all interested 73 clients. 74 * Only one client at a time can select a DeviceButtonPress 75 event with automatic passive grabbing enabled, which is 76 associated with the event class DeviceButtonPressGrab. To 77 receive DeviceButtonPress events without automatic passive 78 grabbing, use event class DeviceButtonPress but do not 79 specify event class DeviceButtonPressGrab. 80 81 The server reports the event to all interested clients. 82 83 Information contained in the XDevice structure returned by 84 XOpenDevice is used by macros to obtain the event classes that 85 clients use in making XSelectExtensionEvent requests. Currently 86 defined macros include DeviceKeyPress, DeviceKeyRelease, 87 DeviceButtonPress, DeviceButtonRelease, DeviceMotionNotify, 88 DeviceFocusIn, DeviceFocusOut, ProximityIn, ProximityOut, 89 DeviceStateNotify, DeviceMappingNotify, ChangeDeviceNotify, 90 DevicePointerMotionHint, DeviceButton1Motion, 91 DeviceButton2Motion, DeviceButton3Motion, DeviceButton4Motion, 92 DeviceButton5Motion, DeviceButtonMotion, DeviceOwnerGrabButton, 93 DeviceButtonPressGrab, and NoExtensionEvent. 94 95 To obtain the proper event class for a particular device, one 96 of the above macros is invoked using the XDevice structure for 97 that device. For example, 98 DeviceKeyPress (*device, type, eventclass); 99 100 returns the DeviceKeyPress event type and the eventclass for 101 selecting DeviceKeyPress events from this device. 102 103 XSelectExtensionEvent can generate a BadWindow or BadClass 104 error. The XGetSelectedExtensionEvents request reports the 105 extension events selected by this client and all clients for 106 the specified window. This request returns pointers to two 107 XEventClass arrays. One lists the input extension events 108 selected by this client from the specified window. The other 109 lists the event classes selected by all clients from the 110 specified window. You should use XFree to free these two 111 arrays. 112 113 XGetSelectedExtensionEvents can generate a BadWindow error. 114 115DIAGNOSTICS 116----------- 117 118 BadWindow 119 A value for a Window argument does not name a defined 120 window. 121 122 BadClass 123 A value for an XEventClass is invalid. 124