xserver: Branch 'input-hotplug'

Daniel Stone daniels at kemper.freedesktop.org
Thu Sep 7 15:41:58 EEST 2006


 xkb/XKBAlloc.c |    5 ++++-
 xkb/xkbUtils.c |   11 +++++++++--
 2 files changed, 13 insertions(+), 3 deletions(-)

New commits:
diff-tree 629798c73ad76a77fa6a55bc6403fd9b95ade2bb (from 4524a2bf6f22c871ed109b027a065f0262137dc5)
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Thu Sep 7 15:17:04 2006 +0300

    XkbCopyKeymap/SrvXkbCopyKeymap: free geom harder, add cheery comments
    Unconditionally free geometry when copying the keymap (so we have none on
    core, oh well), add a couple of heartening comments.

diff --git a/xkb/XKBAlloc.c b/xkb/XKBAlloc.c
index 8356e47..c474733 100644
--- a/xkb/XKBAlloc.c
+++ b/xkb/XKBAlloc.c
@@ -324,8 +324,11 @@ XkbFreeKeyboard(XkbDescPtr xkb,unsigned 
 	XkbFreeIndicatorMaps(xkb);
     if (which&XkbNamesMask)
 	XkbFreeNames(xkb,XkbAllNamesMask,True);
-    if ((which&XkbGeometryMask) && (xkb->geom!=NULL))
+    if ((which&XkbGeometryMask) && (xkb->geom!=NULL)) {
 	XkbFreeGeometry(xkb->geom,XkbGeomAllMask,True);
+        /* PERHAPS BONGHITS etc */
+        xkb->geom = NULL;
+    }
     if (which&XkbControlsMask)
 	XkbFreeControls(xkb,XkbAllControlsMask,True);
     if (freeAll)
diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c
index 813801d..0fde727 100644
--- a/xkb/xkbUtils.c
+++ b/xkb/xkbUtils.c
@@ -1476,6 +1476,8 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr
     }
 
     /* geometry */
+    /* not implemented yet because oh god the pain. */
+#if 0
     if (src->geom) {
         /* properties */
         /* colors */
@@ -1485,9 +1487,13 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr
         /* key aliases */
         /* font?!? */
     }
-    else {
+    else
+#endif
+    {
         if (dst->geom) {
+            /* I LOVE THE DIFFERENT CALL SIGNATURE.  REALLY, I DO. */
             XkbFreeGeometry(dst->geom, XkbGeomAllMask, True);
+            dst->geom = NULL;
         }
     }
 
@@ -1520,7 +1526,8 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr
         }
         else {
             /* send NewKeyboardNotify if the keycode range changed, else
-             * just MapNotify. */
+             * just MapNotify.  we also need to send NKN if the geometry
+             * changed (obviously ...). */
             if ((src->min_key_code != dst->min_key_code ||
                  src->max_key_code != dst->max_key_code) && sendNotifies) {
                 nkn.oldMinKeyCode = dst->min_key_code;



More information about the xorg-commit mailing list