xserver: Branch 'master' - 3 commits
Peter Hutterer
whot at kemper.freedesktop.org
Thu Aug 14 22:58:17 PDT 2008
Xi/exglobals.h | 2 +
Xi/extinit.c | 93 ++++++++++++++++++++++++++++++++++----------------------
Xi/xiproperty.c | 36 +++++++--------------
configure.ac | 2 -
dix/getevents.c | 1
5 files changed, 74 insertions(+), 60 deletions(-)
New commits:
commit 1e62e773273539352bc21b2da5262678dd3fc7df
Author: Peter Hutterer <peter.hutterer at redhat.com>
Date: Fri Aug 15 15:19:44 2008 +0930
Require inputproto 1.9.99.4
diff --git a/configure.ac b/configure.ac
index c902773..d42d7fd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -660,7 +660,7 @@ XEXT_LIB='$(top_builddir)/Xext/libXext.la'
XEXTXORG_LIB='$(top_builddir)/Xext/libXextbuiltin.la'
dnl Core modules for most extensions, et al.
-REQUIRED_MODULES="[randrproto >= 1.2] [renderproto >= 0.9.3] [fixesproto >= 4.0] [damageproto >= 1.1] xcmiscproto [xextproto >= 7.0.3] [xproto >= 7.0.13] xtrans [scrnsaverproto >= 1.1] bigreqsproto resourceproto fontsproto [inputproto >= 1.9.99.3] [kbproto >= 1.0.3]"
+REQUIRED_MODULES="[randrproto >= 1.2] [renderproto >= 0.9.3] [fixesproto >= 4.0] [damageproto >= 1.1] xcmiscproto [xextproto >= 7.0.3] [xproto >= 7.0.13] xtrans [scrnsaverproto >= 1.1] bigreqsproto resourceproto fontsproto [inputproto >= 1.9.99.4] [kbproto >= 1.0.3]"
REQUIRED_LIBS="xfont xau fontenc [pixman-1 >= 0.9.5]"
dnl HAVE_DBUS is true if we actually have the D-Bus library, whereas
commit 609c04b62bdb0e86f33860069033c7142eecf210
Author: Peter Hutterer <peter.hutterer at redhat.com>
Date: Fri Aug 15 14:51:59 2008 +0930
dix: stick a warning in about loss of subpixel precision.
diff --git a/dix/getevents.c b/dix/getevents.c
index 718b8ff..166ab4e 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -938,6 +938,7 @@ GetPointerEvents(EventList *events, DeviceIntPtr pDev, int type, int buttons,
&pDev->last.valuators[first_valuator]);
/* Update the valuators with the true value sent to the client*/
+ /* FIXME: we lose subpixel precision here. */
if(v0) *v0 = x;
if(v1) *v1 = y;
commit de1573172ad2c2e98c101727930a468213295783
Author: Peter Hutterer <peter.hutterer at redhat.com>
Date: Wed Aug 13 13:11:44 2008 +0930
Backport device properties to XI 1.5 instead of XI 2.0
diff --git a/Xi/exglobals.h b/Xi/exglobals.h
index 0b1caf9..42a6953 100644
--- a/Xi/exglobals.h
+++ b/Xi/exglobals.h
@@ -52,6 +52,7 @@ extern Mask DeviceOwnerGrabButtonMask;
extern Mask DeviceButtonGrabMask;
extern Mask DeviceButtonMotionMask;
extern Mask DevicePresenceNotifyMask;
+extern Mask DevicePropertyNotifyMask;
extern Mask DeviceEnterWindowMask;
extern Mask DeviceLeaveWindowMask;
extern Mask PropagateMask[];
@@ -72,6 +73,7 @@ extern int DeviceButtonStateNotify;
extern int DeviceMappingNotify;
extern int ChangeDeviceNotify;
extern int DevicePresenceNotify;
+extern int DevicePropertyNotify;
extern int DeviceEnterNotify;
extern int DeviceLeaveNotify;
diff --git a/Xi/extinit.c b/Xi/extinit.c
index ba93ebc..979622f 100644
--- a/Xi/extinit.c
+++ b/Xi/extinit.c
@@ -210,22 +210,24 @@ static int (*ProcIVector[])(ClientPtr) = {
ProcXSetDeviceValuators, /* 33 */
ProcXGetDeviceControl, /* 34 */
ProcXChangeDeviceControl, /* 35 */
- ProcXQueryDevicePointer, /* 36 */
- ProcXWarpDevicePointer, /* 37 */
- ProcXChangeDeviceCursor, /* 38 */
- ProcXChangeDeviceHierarchy, /* 39 */
- ProcXChangeWindowAccess, /* 40 */
- ProcXQueryWindowAccess, /* 41 */
- ProcXSetClientPointer, /* 42 */
- ProcXGetClientPointer, /* 43 */
- ProcXiSelectEvent, /* 44 */
- ProcXExtendedGrabDevice, /* 45 */
- ProcXListDeviceProperties, /* 46 */
- ProcXQueryDeviceProperty, /* 47 */
- ProcXConfigureDeviceProperty, /* 48 */
- ProcXChangeDeviceProperty, /* 49 */
- ProcXDeleteDeviceProperty, /* 50 */
- ProcXGetDeviceProperty /* 51 */
+ /* XI 1.5 */
+ ProcXListDeviceProperties, /* 36 */
+ ProcXQueryDeviceProperty, /* 37 */
+ ProcXConfigureDeviceProperty, /* 38 */
+ ProcXChangeDeviceProperty, /* 39 */
+ ProcXDeleteDeviceProperty, /* 40 */
+ ProcXGetDeviceProperty, /* 41 */
+ /* XI 2 */
+ ProcXQueryDevicePointer, /* 42 */
+ ProcXWarpDevicePointer, /* 43 */
+ ProcXChangeDeviceCursor, /* 44 */
+ ProcXChangeDeviceHierarchy, /* 45 */
+ ProcXChangeWindowAccess, /* 46 */
+ ProcXQueryWindowAccess, /* 47 */
+ ProcXSetClientPointer, /* 48 */
+ ProcXGetClientPointer, /* 49 */
+ ProcXiSelectEvent, /* 50 */
+ ProcXExtendedGrabDevice /* 51 */
};
/* For swapped clients */
@@ -266,22 +268,22 @@ static int (*SProcIVector[])(ClientPtr) = {
SProcXSetDeviceValuators, /* 33 */
SProcXGetDeviceControl, /* 34 */
SProcXChangeDeviceControl, /* 35 */
- SProcXQueryDevicePointer, /* 36 */
- SProcXWarpDevicePointer, /* 37 */
- SProcXChangeDeviceCursor, /* 38 */
- SProcXChangeDeviceHierarchy, /* 39 */
- SProcXChangeWindowAccess, /* 40 */
- SProcXQueryWindowAccess, /* 41 */
- SProcXSetClientPointer, /* 42 */
- SProcXGetClientPointer, /* 43 */
- SProcXiSelectEvent, /* 44 */
- SProcXExtendedGrabDevice, /* 45 */
- SProcXListDeviceProperties, /* 46 */
- SProcXQueryDeviceProperty, /* 47 */
- SProcXConfigureDeviceProperty, /* 48 */
- SProcXChangeDeviceProperty, /* 49 */
- SProcXDeleteDeviceProperty, /* 50 */
- SProcXGetDeviceProperty /* 51 */
+ SProcXListDeviceProperties, /* 36 */
+ SProcXQueryDeviceProperty, /* 37 */
+ SProcXConfigureDeviceProperty, /* 38 */
+ SProcXChangeDeviceProperty, /* 39 */
+ SProcXDeleteDeviceProperty, /* 40 */
+ SProcXGetDeviceProperty, /* 41 */
+ SProcXQueryDevicePointer, /* 42 */
+ SProcXWarpDevicePointer, /* 43 */
+ SProcXChangeDeviceCursor, /* 44 */
+ SProcXChangeDeviceHierarchy, /* 45 */
+ SProcXChangeWindowAccess, /* 46 */
+ SProcXQueryWindowAccess, /* 47 */
+ SProcXSetClientPointer, /* 48 */
+ SProcXGetClientPointer, /* 49 */
+ SProcXiSelectEvent, /* 50 */
+ SProcXExtendedGrabDevice /* 51 */
};
/*****************************************************************
@@ -308,6 +310,7 @@ Mask DeviceOwnerGrabButtonMask;
Mask DeviceButtonGrabMask;
Mask DeviceButtonMotionMask;
Mask DevicePresenceNotifyMask;
+Mask DevicePropertyNotifyMask;
Mask DeviceEnterWindowMask;
Mask DeviceLeaveWindowMask;
@@ -327,6 +330,7 @@ int DeviceButtonStateNotify;
int DeviceMappingNotify;
int ChangeDeviceNotify;
int DevicePresenceNotify;
+int DevicePropertyNotify;
int DeviceEnterNotify;
int DeviceLeaveNotify;
@@ -590,6 +594,17 @@ SDevicePresenceNotifyEvent (devicePresenceNotify *from, devicePresenceNotify *to
}
static void
+SDevicePropertyNotifyEvent (devicePropertyNotify *from, devicePropertyNotify *to)
+{
+ char n;
+
+ *to = *from;
+ swaps(&to->sequenceNumber,n);
+ swapl(&to->time, n);
+ swapl(&to->atom, n);
+}
+
+static void
SDeviceEnterNotifyEvent (deviceEnterNotify *from, deviceEnterNotify *to)
{
char n;
@@ -786,7 +801,8 @@ FixExtensionEvents(ExtensionEntry * extEntry)
DeviceKeyStateNotify = ChangeDeviceNotify + 1;
DeviceButtonStateNotify = DeviceKeyStateNotify + 1;
DevicePresenceNotify = DeviceButtonStateNotify + 1;
- DeviceEnterNotify = DevicePresenceNotify + 1;
+ DevicePropertyNotify = DevicePresenceNotify + 1;
+ DeviceEnterNotify = DevicePropertyNotify + 1;
DeviceLeaveNotify = DeviceEnterNotify + 1;
event_base[KeyClass] = DeviceKeyPress;
@@ -876,6 +892,9 @@ FixExtensionEvents(ExtensionEntry * extEntry)
DevicePresenceNotifyMask = GetNextExtEventMask();
SetEventInfo(DevicePresenceNotifyMask, _devicePresence);
+ DevicePropertyNotifyMask = GetNextExtEventMask();
+ SetMaskForExtEvent(DevicePropertyNotifyMask, DevicePropertyNotify);
+
DeviceEnterWindowMask = GetNextExtEventMask();
SetMaskForExtEvent(DeviceEnterWindowMask, DeviceEnterNotify);
AllowPropagateSuppress(DeviceEnterWindowMask);
@@ -929,8 +948,9 @@ RestoreExtensionEvents(void)
DeviceKeyStateNotify = 13;
DeviceButtonStateNotify = 13;
DevicePresenceNotify = 14;
- DeviceEnterNotify = 15;
- DeviceLeaveNotify = 16;
+ DevicePropertyNotify = 15;
+ DeviceEnterNotify = 16;
+ DeviceLeaveNotify = 17;
BadDevice = 0;
BadEvent = 1;
@@ -969,6 +989,7 @@ IResetProc(ExtensionEntry * unused)
EventSwapVector[DeviceMappingNotify] = NotImplemented;
EventSwapVector[ChangeDeviceNotify] = NotImplemented;
EventSwapVector[DevicePresenceNotify] = NotImplemented;
+ EventSwapVector[DevicePropertyNotify] = NotImplemented;
EventSwapVector[DeviceEnterNotify] = NotImplemented;
EventSwapVector[DeviceLeaveNotify] = NotImplemented;
RestoreExtensionEvents();
@@ -1072,6 +1093,8 @@ SEventIDispatch(xEvent * from, xEvent * to)
DO_SWAP(SChangeDeviceNotifyEvent, changeDeviceNotify);
else if (type == DevicePresenceNotify)
DO_SWAP(SDevicePresenceNotifyEvent, devicePresenceNotify);
+ else if (type == DevicePropertyNotify)
+ DO_SWAP(SDevicePropertyNotifyEvent, devicePropertyNotify);
else if (type == DeviceEnterNotify)
DO_SWAP(SDeviceEnterNotifyEvent, deviceEnterNotify);
else if (type == DeviceLeaveNotify)
diff --git a/Xi/xiproperty.c b/Xi/xiproperty.c
index b4ccfe6..ec1ed6c 100644
--- a/Xi/xiproperty.c
+++ b/Xi/xiproperty.c
@@ -191,21 +191,18 @@ XIDeleteAllDeviceProperties (DeviceIntPtr device)
{
XIPropertyPtr prop, next;
XIPropertyHandlerPtr curr_handler, next_handler;
- devicePropertyNotifyEvent event;
+ devicePropertyNotify event;
for (prop = device->properties.properties; prop; prop = next)
{
next = prop->next;
- event.type = GenericEvent;
- event.extension = IReqCode;
- event.evtype = XI_DevicePropertyNotify;
- event.length = 0;
+ event.type = DevicePropertyNotify;
event.deviceid = device->id;
event.state = PropertyDelete;
event.atom = prop->propertyName;
event.time = currentTime.milliseconds;
- SendEventToAllWindows(device, XI_DevicePropertyNotifyMask,
+ SendEventToAllWindows(device, DevicePropertyNotifyMask,
(xEvent*)&event, 1);
XIDestroyDeviceProperty(prop);
@@ -226,7 +223,7 @@ int
XIDeleteDeviceProperty (DeviceIntPtr device, Atom property, Bool fromClient)
{
XIPropertyPtr prop, *prev;
- devicePropertyNotifyEvent event;
+ devicePropertyNotify event;
for (prev = &device->properties.properties; (prop = *prev); prev = &(prop->next))
if (prop->propertyName == property)
@@ -238,15 +235,12 @@ XIDeleteDeviceProperty (DeviceIntPtr device, Atom property, Bool fromClient)
if (prop)
{
*prev = prop->next;
- event.type = GenericEvent;
- event.extension = IReqCode;
- event.length = 0;
- event.evtype = XI_DevicePropertyNotify;
+ event.type = DevicePropertyNotify;
event.deviceid = device->id;
event.state = PropertyDelete;
event.atom = prop->propertyName;
event.time = currentTime.milliseconds;
- SendEventToAllWindows(device, XI_DevicePropertyNotifyMask,
+ SendEventToAllWindows(device, DevicePropertyNotifyMask,
(xEvent*)&event, 1);
XIDestroyDeviceProperty (prop);
}
@@ -261,7 +255,7 @@ XIChangeDeviceProperty (DeviceIntPtr dev, Atom property, Atom type,
Bool fromClient)
{
XIPropertyPtr prop;
- devicePropertyNotifyEvent event;
+ devicePropertyNotify event;
int size_in_bytes;
int total_size;
unsigned long total_len;
@@ -379,15 +373,12 @@ XIChangeDeviceProperty (DeviceIntPtr dev, Atom property, Atom type,
if (sendevent)
{
- event.type = GenericEvent;
- event.extension = IReqCode;
- event.length = 0;
- event.evtype = XI_DevicePropertyNotify;
+ event.type = DevicePropertyNotify;
event.deviceid = dev->id;
event.state = PropertyNewValue;
event.atom = prop->propertyName;
event.time = currentTime.milliseconds;
- SendEventToAllWindows(dev, XI_DevicePropertyNotifyMask,
+ SendEventToAllWindows(dev, DevicePropertyNotifyMask,
(xEvent*)&event, 1);
}
return(Success);
@@ -786,17 +777,14 @@ ProcXGetDeviceProperty (ClientPtr client)
if (stuff->delete && (reply.bytesAfter == 0))
{
- devicePropertyNotifyEvent event;
+ devicePropertyNotify event;
- event.type = GenericEvent;
- event.extension = IReqCode;
- event.length = 0;
- event.evtype = XI_DevicePropertyNotify;
+ event.type = DevicePropertyNotify;
event.deviceid = dev->id;
event.state = PropertyDelete;
event.atom = prop->propertyName;
event.time = currentTime.milliseconds;
- SendEventToAllWindows(dev, XI_DevicePropertyNotifyMask,
+ SendEventToAllWindows(dev, DevicePropertyNotifyMask,
(xEvent*)&event, 1);
}
More information about the xorg-commit
mailing list