If XInput.h is included in C++ code DevicePresence macro defined as #define DevicePresence(dpy, type, _class) \ { \ extern int _XiGetDevicePresenceNotifyEvent(Display *); \ type = _XiGetDevicePresenceNotifyEvent(dpy); \ _class = (0x10000 | _devicePresence); \ } produces wrong extern definition for _XiGetDevicePresenceNotifyEvent A predefine of extern "C" { extern int _XiGetDevicePresenceNotifyEvent(Display *); } before macro call in source code works but is an ugly hack.
which version of libXi is that?
sorry for the summary change, firefox plugin gone nuts.
The top of the header is: /* $XFree86: xc/include/extensions/XInput.h,v 1.3 2001/12/14 19:53:28 dawes Exp $ */ The package it comes from is: $ rpm -qf /usr/include/X11/extensions/XInput.h x11-proto-devel-7.3-6mdv2009.0 The Xi package is: $ rpm -qf /usr/lib64/libXi.so lib64xi-devel-1.1.3-3mdv2009.0
Created attachment 21141 [details] [review] 0001-Protect-_XiDevicePresenceNotifyEvent-declaration-aga.patch This is basically the patch we have in the git version of libXi, where XInput.h resides now.
Pushed as 60c449cbb1769569ed5e98c75f26bd15627bd146
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.