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