And copy into the master keyboard, not just the directly attached device.
Signed-off-by: Peter Hutterer <[email protected]>
---
On Fri, Feb 18, 2011 at 10:48:10AM +0100, Benjamin Tissoires wrote:
> >@@ -5883,9 +5884,8 @@ ProcXkbGetKbdByName(ClientPtr client)
> > nkn.changed|= XkbNKN_GeometryMask;
> > XkbSendNewKeyboardNotify(dev,&nkn);
> >
> >- if (!IsMaster(dev)&& !IsFloating(dev))
> >+ if (!IsMaster(dev)&& (master = GetMaster(dev, MASTER_KEYBOARD)))
>
> I had a quick watch on the series, and this line worries me: I all
> the time consider putting an affectation in a test as a bug (or
> source of bug) as it's ambiguous. I know that it's valid in this
> case, but I don't like it.
>
> Sorry for the noise if you consider this as valid. ;)
who am I to argue with that :)
another change: the previous patch would still copy the keymap into the
attached master, not the master keyboard. fix this.
xkb/xkb.c | 10 ++++------
1 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/xkb/xkb.c b/xkb/xkb.c
index 43d847a..5da2814 100644
--- a/xkb/xkb.c
+++ b/xkb/xkb.c
@@ -5883,12 +5883,10 @@ ProcXkbGetKbdByName(ClientPtr client)
nkn.changed|= XkbNKN_GeometryMask;
XkbSendNewKeyboardNotify(dev,&nkn);
- if (!IsMaster(dev) && !IsFloating(dev))
- {
- DeviceIntPtr master = dev->u.master;
- if (master->u.lastSlave == dev)
- {
- XkbCopyDeviceKeymap(dev->u.master, dev);
+ if (!IsMaster(dev)) {
+ DeviceIntPtr master = GetMaster(dev, MASTER_KEYBOARD);
+ if (master && master->u.lastSlave == dev) {
+ XkbCopyDeviceKeymap(master, dev);
XkbSendNewKeyboardNotify(dev,&nkn);
}
}
--
1.7.4
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel