diff --git a/hw/xfree86/compat/deliverevents.c b/hw/xfree86/compat/deliverevents.c new file mode 100644 index 000000000..7d6f65e4e --- /dev/null +++ b/hw/xfree86/compat/deliverevents.c @@ -0,0 +1,30 @@ +#include + +#include + +#include "dix/dix_priv.h" + +/* + * this is specifically for NVidia proprietary driver: they're again lagging + * behind a year, doing at least some minimal cleanup of their code base. + * All attempts to get in direct contact with them have failed. + */ + +_X_EXPORT enum EventDeliveryState DeliverEvents(WindowPtr pWindow, + xEventPtr events, + size_t nEvents, + WindowPtr otherParent); + +enum EventDeliveryState DeliverEvents(WindowPtr pWindow, + xEventPtr events, + size_t nEvents, + WindowPtr otherParent) +{ + LogMessageVerb(X_WARNING, 0, "Bogus driver calling DIX-internal function DeliverEvents() !\n"); + LogMessageVerb(X_WARNING, 0, "External drivers really should never ever call this function.\n"); + LogMessageVerb(X_WARNING, 0, "File a bug report to driver vendor or use a FOSS driver.\n"); + LogMessageVerb(X_WARNING, 0, "Proprietary drivers are inherently unstable, they just can't be done right.\n"); + LogMessageVerb(X_WARNING, 0, "And just don't buy Nvidia hardware, ever.\n"); + + return dixDeliverEvents(pWindow, events, nEvents, otherParent); +} diff --git a/hw/xfree86/compat/meson.build b/hw/xfree86/compat/meson.build index d863ab2d8..c29531ba9 100644 --- a/hw/xfree86/compat/meson.build +++ b/hw/xfree86/compat/meson.build @@ -1,5 +1,6 @@ srcs_xorg_compat = [ 'clientexception.c', + 'deliverevents.c', 'log.c', 'ones.c', 'xf86Helper.c',