diff options
Diffstat (limited to 'libX11/include')
-rw-r--r-- | libX11/include/X11/Xlib-xcb.h | 5 | ||||
-rw-r--r-- | libX11/include/X11/Xlib.h | 23 | ||||
-rw-r--r-- | libX11/include/X11/Xlibint.h | 72 |
3 files changed, 100 insertions, 0 deletions
diff --git a/libX11/include/X11/Xlib-xcb.h b/libX11/include/X11/Xlib-xcb.h index b88e2e7a9..03d8f9867 100644 --- a/libX11/include/X11/Xlib-xcb.h +++ b/libX11/include/X11/Xlib-xcb.h @@ -6,10 +6,15 @@ #include <xcb/xcb.h> #include <X11/Xlib.h> +#include <X11/Xfuncproto.h> + +_XFUNCPROTOBEGIN xcb_connection_t *XGetXCBConnection(Display *dpy); enum XEventQueueOwner { XlibOwnsEventQueue = 0, XCBOwnsEventQueue }; void XSetEventQueueOwner(Display *dpy, enum XEventQueueOwner owner); +_XFUNCPROTOEND + #endif /* XLIB_XCB_H */ diff --git a/libX11/include/X11/Xlib.h b/libX11/include/X11/Xlib.h index 682988cf2..2c30bc09e 100644 --- a/libX11/include/X11/Xlib.h +++ b/libX11/include/X11/Xlib.h @@ -966,6 +966,17 @@ typedef struct int evtype; /* actual event type. */ } XGenericEvent; +typedef struct { + int type; /* of event. Always GenericEvent */ + unsigned long serial; /* # of last request processed */ + Bool send_event; /* true if from SendEvent request */ + Display *display; /* Display the event was read from */ + int extension; /* major opcode of extension that caused the event */ + int evtype; /* actual event type. */ + unsigned int cookie; + void *data; +} XGenericEventCookie; + /* * this union is defined so Xlib can always use the same sized * event structure internally, to avoid memory fragmentation. @@ -1003,6 +1014,8 @@ typedef union _XEvent { XMappingEvent xmapping; XErrorEvent xerror; XKeymapEvent xkeymap; + XGenericEvent xgeneric; + XGenericEventCookie xcookie; long pad[24]; } XEvent; #endif @@ -3998,6 +4011,16 @@ extern int _Xwctomb( wchar_t /* wc */ ); +extern Bool XGetEventData( + Display* /* dpy */, + XGenericEventCookie* /* cookie*/ +); + +extern void XFreeEventData( + Display* /* dpy */, + XGenericEventCookie* /* cookie*/ +); + _XFUNCPROTOEND #endif /* _XLIB_H_ */ diff --git a/libX11/include/X11/Xlibint.h b/libX11/include/X11/Xlibint.h index 4f3755fae..2acfc7690 100644 --- a/libX11/include/X11/Xlibint.h +++ b/libX11/include/X11/Xlibint.h @@ -185,6 +185,20 @@ struct _XDisplay struct _XkbInfoRec *xkb_info; /* XKB info */ struct _XtransConnInfo *trans_conn; /* transport connection object */ struct _X11XCBPrivate *xcb; /* XCB glue private data */ + + /* Generic event cookie handling */ + unsigned int next_cookie; /* next event cookie */ + /* vector for wire to generic event, index is (extension - 128) */ + Bool (*generic_event_vec[128])( + Display * /* dpy */, + XGenericEventCookie * /* Xlib event */, + xEvent * /* wire event */); + /* vector for event copy, index is (extension - 128) */ + Bool (*generic_event_copy_vec[128])( + Display * /* dpy */, + XGenericEventCookie * /* in */, + XGenericEventCookie * /* out*/); + void *cookiejar; /* cookie events returned but not claimed */ }; #define XAllocIDs(dpy,ids,n) (*(dpy)->idlist_alloc)(dpy,ids,n) @@ -1005,6 +1019,19 @@ extern Bool _XUnknownWireEvent( XEvent* /* re */, xEvent* /* event */ ); + +extern Bool _XUnknownWireEventCookie( + Display* /* dpy */, + XGenericEventCookie* /* re */, + xEvent* /* event */ +); + +extern Bool _XUnknownCopyEventCookie( + Display* /* dpy */, + XGenericEventCookie* /* in */, + XGenericEventCookie* /* out */ +); + extern Status _XUnknownNativeEvent( Display* /* dpy */, XEvent* /* re */, @@ -1157,6 +1184,31 @@ extern Bool (*XESetWireToEvent( Display*, XEvent*, xEvent* ); +extern Bool (*XESetWireToEventCookie( + Display* /* display */, + int /* extension */, + Bool (*) ( + Display* /* display */, + XGenericEventCookie* /* re */, + xEvent* /* event */ + ) /* proc */ +))( + Display*, XGenericEventCookie*, xEvent* +); + +extern Bool (*XESetCopyEventCookie( + Display* /* display */, + int /* extension */, + Bool (*) ( + Display* /* display */, + XGenericEventCookie* /* in */, + XGenericEventCookie* /* out */ + ) /* proc */ +))( + Display*, XGenericEventCookie*, XGenericEventCookie* +); + + extern Status (*XESetEventToWire( Display* /* display */, int /* event_number */, @@ -1321,6 +1373,26 @@ int _XPutBackEvent ( register Display *dpy, register XEvent *event); +extern Bool _XIsEventCookie( + Display *dpy, + XEvent *ev); + +extern void _XFreeEventCookies( + Display *dpy); + +extern void _XStoreEventCookie( + Display *dpy, + XEvent *ev); + +extern Bool _XFetchEventCookie( + Display *dpy, + XGenericEventCookie *ev); + +extern Bool _XCopyEventCookie( + Display *dpy, + XGenericEventCookie *in, + XGenericEventCookie *out); + _XFUNCPROTOEND #endif /* _XLIBINT_H_ */ |