From 35ec24cf245e5ef676e98a0bf7c77296a3f1ff63 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 1 Aug 2011 14:14:02 +1000 Subject: [PATCH] input: replace remaining GetPairedDevice() with GetMaster() Wherever it's obvious which device we need (keyboard or pointer), use GetMaster() instead of GetPairedDevice(). It is more reliable in actually getting the device type we want. Signed-off-by: Peter Hutterer Reviewed-by: Daniel Stone --- Xi/exevents.c | 6 +++--- Xi/xiquerypointer.c | 2 +- dix/enterleave.c | 10 +++++----- dix/events.c | 23 ++++++++--------------- hw/xfree86/common/xf86DGA.c | 2 +- hw/xfree86/common/xf86Xinput.c | 2 +- xkb/xkbActions.c | 2 +- 7 files changed, 20 insertions(+), 27 deletions(-) diff --git a/Xi/exevents.c b/Xi/exevents.c index edf2c393f9..53db036290 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -104,7 +104,7 @@ int XIShouldNotify(ClientPtr client, DeviceIntPtr dev) { DeviceIntPtr current_ptr = PickPointer(client); - DeviceIntPtr current_kbd = GetPairedDevice(current_ptr); + DeviceIntPtr current_kbd = GetMaster(current_ptr, KEYBOARD_OR_FLOAT); if (dev == current_kbd || dev == current_ptr) return 1; @@ -903,13 +903,13 @@ ProcessOtherEvent(InternalEvent *ev, DeviceIntPtr device) if (IsPointerDevice(device)) { - kbd = GetPairedDevice(device); + kbd = GetMaster(device, KEYBOARD_OR_FLOAT); mouse = device; if (!kbd->key) /* can happen with floating SDs */ kbd = NULL; } else { - mouse = GetPairedDevice(device); + mouse = GetMaster(device, POINTER_OR_FLOAT); kbd = device; if (!mouse->valuator || !mouse->button) /* may be float. SDs */ mouse = NULL; diff --git a/Xi/xiquerypointer.c b/Xi/xiquerypointer.c index 9e05eff30e..d01a81394e 100644 --- a/Xi/xiquerypointer.c +++ b/Xi/xiquerypointer.c @@ -109,7 +109,7 @@ ProcXIQueryPointer(ClientPtr client) MaybeStopHint(pDev, client); if (IsMaster(pDev)) - kbd = GetPairedDevice(pDev); + kbd = GetMaster(pDev, MASTER_KEYBOARD); else kbd = (pDev->key) ? pDev : NULL; diff --git a/dix/enterleave.c b/dix/enterleave.c index b1ee3fb323..a39e640010 100644 --- a/dix/enterleave.c +++ b/dix/enterleave.c @@ -766,7 +766,7 @@ CoreFocusOutNotifyPointerEvents(DeviceIntPtr dev, { WindowPtr P, stopAt; - P = PointerWin(GetPairedDevice(dev)); + P = PointerWin(GetMaster(dev, POINTER_OR_FLOAT)); if (!P) return; @@ -821,7 +821,7 @@ CoreFocusInNotifyPointerEvents(DeviceIntPtr dev, { WindowPtr P; - P = PointerWin(GetPairedDevice(dev)); + P = PointerWin(GetMaster(dev, POINTER_OR_FLOAT)); if (!P || P == exclude || (pwin_parent != P && !IsParent(pwin_parent, P))) return; @@ -1087,7 +1087,7 @@ CoreFocusPointerRootNoneSwitch(DeviceIntPtr dev, for (i = 0; i < nscreens; i++) { root = screenInfo.screens[i]->root; - if (!HasOtherPointer(root, GetPairedDevice(dev)) && !FirstFocusChild(root)) + if (!HasOtherPointer(root, GetMaster(dev, POINTER_OR_FLOAT)) && !FirstFocusChild(root)) { /* If pointer was on PointerRootWin and changes to NoneWin, and * the pointer paired with dev is below the current root window, @@ -1095,7 +1095,7 @@ CoreFocusPointerRootNoneSwitch(DeviceIntPtr dev, if (dev->focus && dev->focus->win == PointerRootWin && B != PointerRootWin) { - WindowPtr ptrwin = PointerWin(GetPairedDevice(dev)); + WindowPtr ptrwin = PointerWin(GetMaster(dev, POINTER_OR_FLOAT)); if (ptrwin && IsParent(root, ptrwin)) CoreFocusOutNotifyPointerEvents(dev, root, None, mode, TRUE); } @@ -1187,7 +1187,7 @@ CoreFocusFromPointerRootOrNone(DeviceIntPtr dev, if (dev->focus && dev->focus->win == PointerRootWin && B != PointerRootWin) { - WindowPtr ptrwin = PointerWin(GetPairedDevice(dev)); + WindowPtr ptrwin = PointerWin(GetMaster(dev, POINTER_OR_FLOAT)); if (ptrwin) CoreFocusOutNotifyPointerEvents(dev, root, None, mode, TRUE); } diff --git a/dix/events.c b/dix/events.c index f87d2bbf97..5e0dc5f170 100644 --- a/dix/events.c +++ b/dix/events.c @@ -3698,10 +3698,7 @@ CheckPassiveGrabsOnWindow( gdev= grab->modifierDevice; if (grab->grabtype == GRABTYPE_CORE) { - if (IsPointerDevice(device)) - gdev = GetPairedDevice(device); - else - gdev = device; + gdev = GetMaster(device, KEYBOARD_OR_FLOAT); } else if (grab->grabtype == GRABTYPE_XI2) { /* if the device is an attached slave device, gdev must be the @@ -4000,8 +3997,7 @@ DeliverFocusedEvent(DeviceIntPtr keybd, InternalEvent *event, WindowPtr window) } /* just deliver it to the focus window */ - ptr = GetPairedDevice(keybd); - + ptr = GetMaster(keybd, POINTER_OR_FLOAT); rc = EventToXI2(event, &xi2); if (rc == Success) @@ -4501,7 +4497,7 @@ CoreEnterLeaveEvent( GrabPtr grab = mouse->deviceGrab.grab; Mask mask; - keybd = GetPairedDevice(mouse); + keybd = GetMaster(mouse, KEYBOARD_OR_FLOAT); if ((pWin == mouse->valuator->motionHintWindow) && (detail != NotifyInferior)) @@ -4719,10 +4715,7 @@ SetInputFocus( } time = ClientTimeToServerTime(ctime); - if (IsKeyboardDevice(dev)) - keybd = dev; - else - keybd = GetPairedDevice(dev); + keybd = GetMaster(dev, KEYBOARD_OR_FLOAT); if ((focusID == None) || (focusID == PointerRoot)) focusWin = (WindowPtr)(long)focusID; @@ -5197,7 +5190,7 @@ ProcQueryPointer(ClientPtr client) if (rc != Success && rc != BadAccess) return rc; - keyboard = GetPairedDevice(mouse); + keyboard = GetMaster(mouse, MASTER_KEYBOARD); pSprite = mouse->spriteInfo->sprite; if (mouse->valuator->motionHintWindow) @@ -5321,7 +5314,7 @@ ProcSendEvent(ClientPtr client) WindowPtr pWin; WindowPtr effectiveFocus = NullWindow; /* only set if dest==InputFocus */ DeviceIntPtr dev = PickPointer(client); - DeviceIntPtr keybd = GetPairedDevice(dev); + DeviceIntPtr keybd = GetMaster(dev, MASTER_KEYBOARD); SpritePtr pSprite = dev->spriteInfo->sprite; REQUEST(xSendEventReq); @@ -5594,7 +5587,7 @@ ProcGrabButton(ClientPtr client) } ptr = PickPointer(client); - modifierDevice = GetPairedDevice(ptr); + modifierDevice = GetMaster(ptr, MASTER_KEYBOARD); if (stuff->pointerMode == GrabModeSync || stuff->keyboardMode == GrabModeSync) access_mode |= DixFreezeAccess; @@ -5651,7 +5644,7 @@ ProcUngrabButton(ClientPtr client) tempGrab.window = pWin; tempGrab.modifiersDetail.exact = stuff->modifiers; tempGrab.modifiersDetail.pMask = NULL; - tempGrab.modifierDevice = GetPairedDevice(ptr); + tempGrab.modifierDevice = GetMaster(ptr, MASTER_KEYBOARD); tempGrab.type = ButtonPress; tempGrab.detail.exact = stuff->button; tempGrab.grabtype = GRABTYPE_CORE; diff --git a/hw/xfree86/common/xf86DGA.c b/hw/xfree86/common/xf86DGA.c index 74eb739e4e..46e3005fa3 100644 --- a/hw/xfree86/common/xf86DGA.c +++ b/hw/xfree86/common/xf86DGA.c @@ -1016,7 +1016,7 @@ DGAProcessKeyboardEvent (ScreenPtr pScreen, DGAEvent *event, DeviceIntPtr keybd) { KeyClassPtr keyc = keybd->key; DGAScreenPtr pScreenPriv = DGA_GET_SCREEN_PRIV(pScreen); - DeviceIntPtr pointer = GetPairedDevice(keybd); + DeviceIntPtr pointer = GetMaster(keybd, POINTER_OR_FLOAT); DeviceEvent ev; memset(&ev, 0, sizeof(ev)); diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c index c3ffc27d01..7feb48c1ea 100644 --- a/hw/xfree86/common/xf86Xinput.c +++ b/hw/xfree86/common/xf86Xinput.c @@ -1275,7 +1275,7 @@ xf86PostKeyEventM(DeviceIntPtr device, DeviceIntPtr pointer; /* Some pointers send key events, paired device is wrong then. */ - pointer = IsPointerDevice(device) ? device : GetPairedDevice(device); + pointer = GetMaster(device, POINTER_OR_FLOAT); if (miPointerGetScreen(pointer)) { int index = miPointerGetScreen(pointer)->myNum; diff --git a/xkb/xkbActions.c b/xkb/xkbActions.c index 000002a454..1e94d261c6 100644 --- a/xkb/xkbActions.c +++ b/xkb/xkbActions.c @@ -1203,7 +1203,7 @@ xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(dev); if (keyEvent) tmpdev = dev; else - tmpdev = GetPairedDevice(dev); + tmpdev = GetMaster(dev, POINTER_OR_FLOAT); UNWRAP_PROCESS_INPUT_PROC(tmpdev,xkbPrivPtr, backupproc); dev->public.processInputProc((InternalEvent*)event, tmpdev);