mirror of
https://github.com/X11Libre/xserver.git
synced 2026-04-14 17:18:09 +00:00
Adjust EQ to support long events.
Add RawDeviceEvent (pointers only for now). This commit changes the event queue to use EventLists instead of xEvent arrays. Only EQ is affected, event delivery still uses xEvent* (look for comment in mieqProcessInputEvent). RawDeviceEvents deliver driver information to the client, without clipping or acceleration.
This commit is contained in:
@@ -61,6 +61,7 @@ SOFTWARE.
|
||||
#include <X11/Xproto.h>
|
||||
#include <X11/extensions/XI.h>
|
||||
#include <X11/extensions/XIproto.h>
|
||||
#include <X11/extensions/geproto.h>
|
||||
#include "inputstr.h"
|
||||
#include "windowstr.h"
|
||||
#include "miscstruct.h"
|
||||
@@ -127,7 +128,7 @@ ProcessOtherEvent(xEventPtr xE, DeviceIntPtr device, int count)
|
||||
ValuatorClassPtr v = device->valuator;
|
||||
deviceValuator *xV = (deviceValuator *) xE;
|
||||
|
||||
if (xE->u.u.type != DeviceValuator) {
|
||||
if (xE->u.u.type != DeviceValuator && xE->u.u.type != GenericEvent) {
|
||||
DeviceIntPtr mouse = NULL, kbd = NULL;
|
||||
GetSpritePosition(device, &rootX, &rootY);
|
||||
xE->u.keyButtonPointer.rootX = rootX;
|
||||
|
||||
10
Xi/extinit.c
10
Xi/extinit.c
@@ -131,6 +131,13 @@ int ExtEventIndex;
|
||||
Mask ExtValidMasks[EMASKSIZE];
|
||||
Mask ExtExclusiveMasks[EMASKSIZE];
|
||||
|
||||
|
||||
static Mask xi_filters[3] = {
|
||||
XI_PointerKeyboardPairingChangedNotifyMask,
|
||||
XI_RandomStringEventMask,
|
||||
XI_RawDeviceEventMask,
|
||||
};
|
||||
|
||||
static struct dev_type
|
||||
{
|
||||
Atom type;
|
||||
@@ -1158,6 +1165,9 @@ XInputExtensionInit(void)
|
||||
EventSwapVector[ChangeDeviceNotify] = SEventIDispatch;
|
||||
EventSwapVector[DeviceEnterNotify] = SEventIDispatch;
|
||||
EventSwapVector[DeviceLeaveNotify] = SEventIDispatch;
|
||||
|
||||
/* init GE events */
|
||||
SetGenericFilter(IReqCode, xi_filters);
|
||||
} else {
|
||||
FatalError("IExtensionInit: AddExtensions failed\n");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user