diff --git a/dix/dix_priv.h b/dix/dix_priv.h index fd6b44c0f..acf4f1b0e 100644 --- a/dix/dix_priv.h +++ b/dix/dix_priv.h @@ -23,6 +23,7 @@ #include "include/events.h" #include "include/gc.h" #include "include/input.h" +#include "include/os.h" #include "include/window.h" /* server setting: maximum size for big requests */ @@ -261,4 +262,21 @@ void MakePredeclaredAtoms(void); */ void SetCriticalEvent(int event); +/** + * @brief try to deliver events to interested parties. + * + * @param pWindow target window + * @param pEvents array of events to be delivered + * @param nEvents number of elements in *pEvents + * @param filter filter mask based on event type + * @param skipClient don't deliver to this client (if not NULL) + * @return 0 when skipped (skipClient), 1 when delivered, 2 when nobody's interested + */ +int MaybeDeliverEventsToClient(WindowPtr pWindow, + xEvent *pEvents, + size_t nEvents, + Mask filter, + ClientPtr skipClient) + _X_ATTRIBUTE_NONNULL_ARG(1,2); + #endif /* _XSERVER_DIX_PRIV_H */ diff --git a/dix/events.c b/dix/events.c index 73706797b..ec9eb4f5b 100644 --- a/dix/events.c +++ b/dix/events.c @@ -2547,7 +2547,7 @@ XineramaTryClientEventsResult(ClientPtr client, */ int MaybeDeliverEventsToClient(WindowPtr pWin, xEvent *pEvents, - int count, Mask filter, ClientPtr dontClient) + size_t count, Mask filter, ClientPtr dontClient) { OtherClients *other; diff --git a/include/dixevents.h b/include/dixevents.h index 36713a97d..884ed6661 100644 --- a/include/dixevents.h +++ b/include/dixevents.h @@ -26,12 +26,6 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #ifndef DIXEVENTS_H #define DIXEVENTS_H -extern _X_EXPORT int MaybeDeliverEventsToClient(WindowPtr /* pWin */ , - xEvent * /* pEvents */ , - int /* count */ , - Mask /* filter */ , - ClientPtr /* dontClient */ ); - extern _X_EXPORT int EventSelectForWindow(WindowPtr /* pWin */ , ClientPtr /* client */ , Mask /* mask */ );