Unlike Enter/Leave events generated by a device pushing the pointer around,
a device doesn't change focus all by itself. It's a result of a
SetInputFocus call, a window becoming unviewable or a grab activating. As
such, the sourceid for focus events is always the deviceid itself.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
The sourceid for enter/leave events as a result of pointer motion is the ID
of the slave device. The sourceid for those as a result of a grab activating
is the device itself.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Use enum EventType instead of ints. This requires a load of default
cases in various switch statements to silence compiler warnings.
Reported-by: Aaron Plattner
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
warning: passing argument 4 of ‘RecordAProtocolElement’ discards qualifiers
from pointer target type
note: expected ‘pointer’ but argument is of type ‘const void *’
record.c:2745: warning: passing argument 1 of ‘SwapConnSetupInfo’ from
incompatible pointer type
../include/swaprep.h:243: note: expected ‘char *’ but argument is of type
‘struct xConnSetup *’
record.c:2745: warning: passing argument 1 of ‘SwapConnSetupInfo’ from
incompatible pointer type
../include/swaprep.h:243: note: expected ‘char *’ but argument is of type
‘struct xConnSetup *’
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
XI1 only uses 7 bits for deviceids, bit 8 is used for the MORE_EVENTS flag
on the wire (when DeviceValuator events are required).
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
xf86PostKeyboardEvent also makes use of xf86PostKeyEventP to avoid code
duplication, and the valuator verification has been split into the
XI_VERIFY_VALUATORS macro.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Ifdef'd out since the switch to internal events. PtrBtn actions now work
again. Instead of generating the event directly, GPE generates the event and
it is then posted through the usual event processing routines
(mieqProcessDeviceEvent).
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This is long overdue. The device events are InternalEvents now (and only one
at a time), diminishing the need for an EventList for the master event.
Furthermore, don't make masterEvent a static since this will interfere if
mieqProcessDeviceEvent is called from somewhere else (e.g. XKB actions).
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
GPE and friends now use internal events so they may generate up to 3 events.
One (optional) DeviceChanged event and one raw event plus a device event.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
The RECORD extension is currently broken. By ifdef'ing out the content of
RecordExtensionInit the extension isn't added to the server's internal list
and it does not get advertised to the client. Clients can thus fail
gracefully with a "extension not supported" instead of waiting forever for
events that never arrive.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
InternalEvents shouldn't be used anywhere outside the X server itself. Split
up into events.h for opaque typedefs for the events needed by various
headers and eventstr.h for the actual struct definitions.
eventstr.h must only be included by code that requires internal events and
is not part of the SDK.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Inside a windowing system, it's not the place to probe for devices. Goodbye
-probe and -probeonly.
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Such stupid and ugly way to dump PCI information! Oh boy... Anyway, this
doesn't belong to the X server at all. Go away!
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
This patch simplifies error handling in the HAL code and fixes a
segfault if libhal_find_device_by_capability() failed.
Fixes http://bugs.gentoo.org/278760
Based on a patch by Martin von Gagern <Martin.vGagern@gmx.net>
Signed-off-by: Rémi Cardona <remi@gentoo.org>
Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
This changes the ABI, but since the video ABI is at 6 already
it should be fine.
driver changes are in the pipeline after this.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Get/SetWindowLong() is superseded by Get/SetWindowLongPtr(), so change to
using that everywhere it remains
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
The main change is cleanup of the visualConfigs and setting up alpha correctly there to match the visuals being added earlier (so the default visual has a corresponding GLX visual)
(cherry picked from commit 7351db5c87)
These events aren't really related to physical input devices anyways, so it doesn't make sense to use the pointer.
(cherry picked from commit bfe0b9cfa7)