summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dix/devices.c2
-rw-r--r--xkb/xkbInit.c3
2 files changed, 3 insertions, 2 deletions
diff --git a/dix/devices.c b/dix/devices.c
index 0c718d204..767b5c7d7 100644
--- a/dix/devices.c
+++ b/dix/devices.c
@@ -1367,7 +1367,7 @@ InitValuatorClassDeviceStruct(DeviceIntPtr dev, int numAxes, Atom *labels,
valc->numMotionEvents = numMotionEvents;
valc->motionHintWindow = NullWindow;
- if (mode & OutOfProximity)
+ if ((mode & OutOfProximity) && !dev->proximity)
InitProximityClassDeviceStruct(dev);
dev->valuator = valc;
diff --git a/xkb/xkbInit.c b/xkb/xkbInit.c
index 244c353c6..573c4ff1d 100644
--- a/xkb/xkbInit.c
+++ b/xkb/xkbInit.c
@@ -589,7 +589,8 @@ InitKeyboardDeviceStruct(DeviceIntPtr dev, XkbRMLVOSet * rmlvo,
XkbUpdateActions(dev, xkb->min_key_code, XkbNumKeys(xkb), &changes,
&check, &cause);
- InitFocusClassDeviceStruct(dev);
+ if (!dev->focus)
+ InitFocusClassDeviceStruct(dev);
xkbi->kbdProc = ctrl_func;
dev->kbdfeed->BellProc = bell_func;