mirror of
https://github.com/X11Libre/xserver.git
synced 2026-09-29 21:46:40 +00:00
Switch to use IsFloating()
This is not a straightforward search/replacement due to a long-standing issue. dev->u.master is the same field as dev->u.lastSlave. Thus, if dev is a master device, a check for dev->u.master may give us false positives and false negatives. The switch to IsFloating() spells out these cases and modifies the conditions accordingly to cover both cases. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Benjamin Tissoires <tissoire@cena.fr>
This commit is contained in:
parent
e48bf3b640
commit
dc57f89959
15 changed files with 37 additions and 43 deletions
|
|
@ -5883,7 +5883,7 @@ ProcXkbGetKbdByName(ClientPtr client)
|
|||
nkn.changed|= XkbNKN_GeometryMask;
|
||||
XkbSendNewKeyboardNotify(dev,&nkn);
|
||||
|
||||
if (!IsMaster(dev) && dev->u.master)
|
||||
if (!IsMaster(dev) && !IsFloating(dev))
|
||||
{
|
||||
DeviceIntPtr master = dev->u.master;
|
||||
if (master->u.lastSlave == dev)
|
||||
|
|
|
|||
|
|
@ -694,7 +694,7 @@ ProcessInputProc backupproc;
|
|||
xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(mouse);
|
||||
DeviceEvent *event = &ev->device_event;
|
||||
|
||||
dev = (IsMaster(mouse) || mouse->u.master) ? GetMaster(mouse, MASTER_KEYBOARD) : mouse;
|
||||
dev = IsFloating(mouse) ? mouse : GetMaster(mouse, MASTER_KEYBOARD);
|
||||
|
||||
if (dev && dev->key)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1367,7 +1367,7 @@ InjectPointerKeyEvents(DeviceIntPtr dev, int type, int button, int flags, Valuat
|
|||
mpointer = GetMaster(dev, MASTER_POINTER);
|
||||
lastSlave = mpointer->u.lastSlave;
|
||||
ptr = GetXTestDevice(mpointer);
|
||||
} else if (!dev->u.master)
|
||||
} else if (IsFloating(dev))
|
||||
ptr = dev;
|
||||
else
|
||||
return;
|
||||
|
|
@ -1397,7 +1397,7 @@ XkbFakePointerMotion(DeviceIntPtr dev, unsigned flags,int x,int y)
|
|||
int gpe_flags = 0;
|
||||
|
||||
/* ignore attached SDs */
|
||||
if (!IsMaster(dev) && GetMaster(dev, MASTER_POINTER) != NULL)
|
||||
if (!IsMaster(dev) && !IsFloating(dev))
|
||||
return;
|
||||
|
||||
if (flags & XkbSA_MoveAbsoluteX || flags & XkbSA_MoveAbsoluteY)
|
||||
|
|
@ -1427,7 +1427,7 @@ XkbFakeDeviceButton(DeviceIntPtr dev,Bool press,int button)
|
|||
if (IsMaster(dev)) {
|
||||
DeviceIntPtr mpointer = GetMaster(dev, MASTER_POINTER);
|
||||
ptr = GetXTestDevice(mpointer);
|
||||
} else if (!dev->u.master)
|
||||
} else if (IsFloating(dev))
|
||||
ptr = dev;
|
||||
else
|
||||
return;
|
||||
|
|
|
|||
Loading…
Reference in a new issue