diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2012-04-19 17:03:54 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2012-04-19 17:03:54 +1000 |
commit | 51a8d8dd19d7496fe84b37a1f0a7a03658120539 (patch) | |
tree | 9aa082bd83dced4594ce0c64a7c79f3184d175e3 | |
parent | ebf214876a4885a98ded4f5525925b69005fae05 (diff) | |
parent | 00cf1c40b28417d7035c2917d048553eb720023c (diff) |
Merge branch 'input-fixes' of git://people.freedesktop.org/~cndougla/xserver into for-keith
-rw-r--r-- | Xi/exevents.c | 92 | ||||
-rw-r--r-- | dix/dispatch.c | 5 | ||||
-rw-r--r-- | dix/events.c | 55 | ||||
-rw-r--r-- | dix/touch.c | 117 | ||||
-rw-r--r-- | hw/xfree86/dixmods/extmod/xf86vmode.c | 826 | ||||
-rw-r--r-- | include/input.h | 6 |
6 files changed, 669 insertions, 432 deletions
diff --git a/Xi/exevents.c b/Xi/exevents.c index c05c22604..e9f02072a 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -1234,14 +1234,6 @@ TouchRejected(DeviceIntPtr sourcedev, TouchPointInfoPtr ti, XID resource, } } - /* If there are no other listeners left, and the touchpoint is pending - * finish, then we can just kill it now. */ - if (ti->num_listeners == 1 && ti->pending_finish) { - TouchEndTouch(sourcedev, ti); - CheckOldestTouch(sourcedev); - return; - } - /* Remove the resource from the listener list, updating * ti->num_listeners, as well as ti->num_grabs if it was a grab. */ if (TouchRemoveListener(ti, resource)) { @@ -1254,6 +1246,8 @@ TouchRejected(DeviceIntPtr sourcedev, TouchPointInfoPtr ti, XID resource, * the TouchOwnership or TouchBegin event to the new owner. */ if (ev && ti->num_listeners > 0 && was_owner) TouchPuntToNextOwner(sourcedev, ti, ev); + else if (ti->num_listeners == 0) + TouchEndTouch(sourcedev, ti); CheckOldestTouch(sourcedev); } @@ -1273,9 +1267,18 @@ ProcessTouchOwnershipEvent(DeviceIntPtr dev, TouchPointInfoPtr ti, if (ev->reason == XIRejectTouch) TouchRejected(dev, ti, ev->resource, ev); else if (ev->reason == XIAcceptTouch) { + int i; + + /* Go through the motions of ending the touch if the listener has + * already seen the end. This ensures that the touch record is ended in + * the server. */ + if (ti->listeners[0].state == LISTENER_HAS_END) + EmitTouchEnd(dev, ti, TOUCH_ACCEPT, ti->listeners[0].listener); + /* The touch owner has accepted the touch. Send TouchEnd events to * everyone else, and truncate the list of listeners. */ - EmitTouchEnd(dev, ti, TOUCH_ACCEPT, 0); + for (i = 1; i < ti->num_listeners; i++) + EmitTouchEnd(dev, ti, TOUCH_ACCEPT, ti->listeners[i].listener); while (ti->num_listeners > 1) TouchRemoveListener(ti, ti->listeners[1].listener); @@ -1327,6 +1330,7 @@ RetrieveTouchDeliveryData(DeviceIntPtr dev, TouchPointInfoPtr ti, { int rc; InputClients *iclients = NULL; + *mask = NULL; if (listener->type == LISTENER_GRAB || listener->type == LISTENER_POINTER_GRAB) { @@ -1377,6 +1381,9 @@ RetrieveTouchDeliveryData(DeviceIntPtr dev, TouchPointInfoPtr ti, BUG_WARN(!iclients); if (!iclients) return FALSE; + + *mask = iclients->xi2mask; + *client = rClient(iclients); } else if (listener->level == XI) { int xi_type = GetXIType(TouchGetPointerEventType(ev)); @@ -1389,21 +1396,24 @@ RetrieveTouchDeliveryData(DeviceIntPtr dev, TouchPointInfoPtr ti, BUG_WARN(!iclients); if (!iclients) return FALSE; + + *client = rClient(iclients); } else { int coretype = GetCoreType(TouchGetPointerEventType(ev)); Mask core_filter = event_get_filter_from_type(dev, coretype); + OtherClients *oclients; /* all others */ - nt_list_for_each_entry(iclients, - (InputClients *) wOtherClients(*win), next) - if (iclients->mask[XIAllDevices] & core_filter) - break; - /* if owner selected, iclients is NULL */ + nt_list_for_each_entry(oclients, + (OtherClients *) wOtherClients(*win), next) + if (oclients->mask & core_filter) + break; + + /* if owner selected, oclients is NULL */ + *client = oclients ? rClient(oclients) : wClient(*win); } - *client = iclients ? rClient(iclients) : wClient(*win); - *mask = iclients ? iclients->xi2mask : NULL; *grab = NULL; } @@ -1459,7 +1469,14 @@ DeliverTouchEmulatedEvent(DeviceIntPtr dev, TouchPointInfoPtr ti, if (!deliveries) DeliverOneGrabbedEvent(ptrev, dev, grab->grabtype); + /* We must accept the touch sequence once a pointer listener has + * received one event past ButtonPress. */ + if (deliveries && ev->any.type != ET_TouchBegin && + !(ev->device_event.flags & TOUCH_CLIENT_ID)) + TouchListenerAcceptReject(dev, ti, 0, XIAcceptTouch); + if (ev->any.type == ET_TouchEnd && + !(ev->device_event.flags & TOUCH_CLIENT_ID) && !dev->button->buttonsDown && dev->deviceGrab.fromPassiveGrab && GrabIsPointerGrab(grab)) { (*dev->deviceGrab.DeactivateGrab) (dev); @@ -1580,6 +1597,9 @@ ProcessTouchEvent(InternalEvent *ev, DeviceIntPtr dev) else touchid = ev->device_event.touchid; + if (emulate_pointer) + UpdateDeviceState(dev, &ev->device_event); + if (type == ET_TouchBegin) { ti = TouchBeginTouch(dev, ev->device_event.sourceid, touchid, emulate_pointer); @@ -1587,6 +1607,34 @@ ProcessTouchEvent(InternalEvent *ev, DeviceIntPtr dev) else ti = TouchFindByClientID(dev, touchid); + /* Under the following circumstances we create a new touch record for an + * existing touch: + * + * - The touch may be pointer emulated + * - An explicit grab is active on the device + * - The grab is a pointer grab + * + * This allows for an explicit grab to receive pointer events for an already + * active touch. + */ + if (!ti && type != ET_TouchBegin && emulate_pointer && + dev->deviceGrab.grab && !dev->deviceGrab.fromPassiveGrab && + (dev->deviceGrab.grab->grabtype == CORE || + dev->deviceGrab.grab->grabtype == XI || + !xi2mask_isset(dev->deviceGrab.grab->xi2mask, dev, XI_TouchBegin))) { + ti = TouchBeginTouch(dev, ev->device_event.sourceid, touchid, + emulate_pointer); + if (!ti) { + DebugF("[Xi] %s: Failed to create new dix record for explicitly " + "grabbed touchpoint %d\n", + dev->name, type, touchid); + return; + } + + TouchBuildSprite(dev, ti, ev); + TouchSetupListeners(dev, ti, ev); + } + if (!ti) { DebugF("[Xi] %s: Failed to get event %d for touchpoint %d\n", dev->name, type, touchid); @@ -1602,9 +1650,11 @@ ProcessTouchEvent(InternalEvent *ev, DeviceIntPtr dev) CheckMotion(&ev->device_event, dev); /* Make sure we have a valid window trace for event delivery; must be - * called after event type mutation. */ + * called after event type mutation. Touch end events are always processed + * in order to end touch records. */ /* FIXME: check this */ - if (!TouchEnsureSprite(dev, ti, ev)) + if ((type == ET_TouchBegin && !TouchBuildSprite(dev, ti, ev)) || + (type != ET_TouchEnd && ti->sprite.spriteTraceGood == 0)) return; /* TouchOwnership events are handled separately from the rest, as they @@ -1834,7 +1884,8 @@ DeliverTouchEndEvent(DeviceIntPtr dev, TouchPointInfoPtr ti, InternalEvent *ev, if (ti->num_listeners > 1) { ev->any.type = ET_TouchUpdate; ev->device_event.flags |= TOUCH_PENDING_END; - ti->pending_finish = TRUE; + if (!(ev->device_event.flags & TOUCH_CLIENT_ID)) + ti->pending_finish = TRUE; } goto out; @@ -1948,9 +1999,6 @@ DeliverTouchEvents(DeviceIntPtr dev, TouchPointInfoPtr ti, DeliverTouchEvent(dev, ti, ev, listener, client, win, grab, mask); } - - if (ti->emulate_pointer) - UpdateDeviceState(dev, &ev->device_event); } int diff --git a/dix/dispatch.c b/dix/dispatch.c index 62f8ea305..d97180548 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -214,7 +214,7 @@ UpdateCurrentTimeIf(void) systime.milliseconds = GetTimeInMillis(); if (systime.milliseconds < currentTime.milliseconds) systime.months++; - if (*checkForInput[0] == *checkForInput[1]) + if (CompareTimeStamps(systime, currentTime) == LATER) currentTime = systime; } @@ -393,6 +393,9 @@ Dispatch(void) } /* now, finally, deal with client requests */ + /* Update currentTime so request time checks, such as for input + * device grabs, are calculated correctly */ + UpdateCurrentTimeIf(); result = ReadRequestFromClient(client); if (result <= 0) { if (result < 0) diff --git a/dix/events.c b/dix/events.c index b9f9cfa3c..9496b6f19 100644 --- a/dix/events.c +++ b/dix/events.c @@ -1273,18 +1273,11 @@ ComputeFreezes(void) event->root_x, event->root_y); if (!CheckDeviceGrabs(replayDev, event, syncEvents.replayWin)) { if (IsTouchEvent((InternalEvent *) event)) { - InternalEvent *events = InitEventList(GetMaximumEventsNum()); - int i, nev; TouchPointInfoPtr ti = TouchFindByClientID(replayDev, event->touchid); BUG_WARN(!ti); - nev = - GetTouchOwnershipEvents(events, replayDev, ti, - XIRejectTouch, - ti->listeners[0].listener, 0); - for (i = 0; i < nev; i++) - mieqProcessDeviceEvent(replayDev, events + i, NULL); - ProcessInputEvents(); + + TouchListenerAcceptReject(replayDev, ti, 0, XIRejectTouch); } else if (replayDev->focus && !IsPointerEvent((InternalEvent *) event)) @@ -1416,6 +1409,38 @@ ReattachToOldMaster(DeviceIntPtr dev) } /** + * Update touch records when an explicit grab is activated. Any touches owned by + * the grabbing client are updated so the listener state reflects the new grab. + */ +static void +UpdateTouchesForGrab(DeviceIntPtr mouse) +{ + int i; + + if (!mouse->touch || mouse->deviceGrab.fromPassiveGrab) + return; + + for (i = 0; i < mouse->touch->num_touches; i++) { + TouchPointInfoPtr ti = mouse->touch->touches + i; + GrabPtr grab = mouse->deviceGrab.grab; + + if (ti->active && + CLIENT_BITS(ti->listeners[0].listener) == grab->resource) { + ti->listeners[0].listener = grab->resource; + ti->listeners[0].level = grab->grabtype; + ti->listeners[0].state = LISTENER_IS_OWNER; + ti->listeners[0].window = grab->window; + + if (grab->grabtype == CORE || grab->grabtype == XI || + !xi2mask_isset(grab->xi2mask, mouse, XI_TouchBegin)) + ti->listeners[0].type = LISTENER_POINTER_GRAB; + else + ti->listeners[0].type = LISTENER_GRAB; + } + } +} + +/** * Activate a pointer grab on the given device. A pointer grab will cause all * core pointer events of this device to be delivered to the grabbing client only. * No other device will send core events to the grab client while the grab is @@ -1464,6 +1489,7 @@ ActivatePointerGrab(DeviceIntPtr mouse, GrabPtr grab, grabinfo->fromPassiveGrab = isPassive; grabinfo->implicitGrab = autoGrab & ImplicitGrabMask; PostNewCursor(mouse); + UpdateTouchesForGrab(mouse); CheckGrabForSyncs(mouse, (Bool) grab->pointerMode, (Bool) grab->keyboardMode); } @@ -1480,6 +1506,8 @@ DeactivatePointerGrab(DeviceIntPtr mouse) DeviceIntPtr dev; Bool wasImplicit = (mouse->deviceGrab.fromPassiveGrab && mouse->deviceGrab.implicitGrab); + XID grab_resource = grab->resource; + int i; TouchRemovePointerGrab(mouse); @@ -1504,6 +1532,15 @@ DeactivatePointerGrab(DeviceIntPtr mouse) ReattachToOldMaster(mouse); ComputeFreezes(); + + /* If an explicit grab was deactivated, we must remove it from the head of + * all the touches' listener lists. */ + for (i = 0; mouse->touch && i < mouse->touch->num_touches; i++) { + TouchPointInfoPtr ti = mouse->touch->touches + i; + + if (ti->active && TouchResourceIsOwner(ti, grab_resource)) + TouchListenerAcceptReject(mouse, ti, 0, XIRejectTouch); + } } /** diff --git a/dix/touch.c b/dix/touch.c index 0829b6545..dd16367d0 100644 --- a/dix/touch.c +++ b/dix/touch.c @@ -364,14 +364,6 @@ TouchEndTouch(DeviceIntPtr dev, TouchPointInfoPtr ti) { if (ti->emulate_pointer) { GrabPtr grab; - DeviceEvent ev; - - memset(&ev, 0, sizeof(ev)); - ev.type = ET_TouchEnd; - ev.detail.button = 1; - ev.touchid = ti->client_id; - ev.flags = TOUCH_POINTER_EMULATED | TOUCH_END; - UpdateDeviceState(dev, &ev); if ((grab = dev->deviceGrab.grab)) { if (dev->deviceGrab.fromPassiveGrab && @@ -482,10 +474,22 @@ TouchEventHistoryReplay(TouchPointInfoPtr ti, DeviceIntPtr dev, XID resource) flags = TOUCH_CLIENT_ID | TOUCH_REPLAYING; if (ti->emulate_pointer) flags |= TOUCH_POINTER_EMULATED; - /* send fake begin event to next owner */ + /* Generate events based on a fake touch begin event to get DCCE events if + * needed */ + /* FIXME: This needs to be cleaned up */ nev = GetTouchEvents(tel, dev, ti->client_id, XI_TouchBegin, flags, mask); - for (i = 0; i < nev; i++) - DeliverTouchEvents(dev, ti, tel + i, resource); + for (i = 0; i < nev; i++) { + /* Send saved touch begin event */ + if (tel[i].any.type == ET_TouchBegin) { + DeviceEvent *ev = &ti->history[0]; + ev->flags |= TOUCH_REPLAYING; + DeliverTouchEvents(dev, ti, (InternalEvent*)ev, resource); + } + else {/* Send DCCE event */ + tel[i].any.time = ti->history[0].time; + DeliverTouchEvents(dev, ti, tel + i, resource); + } + } valuator_mask_free(&mask); FreeEventList(tel, GetMaximumEventsNum()); @@ -542,22 +546,12 @@ TouchBuildDependentSpriteTrace(DeviceIntPtr dev, SpritePtr sprite) * TouchBegin events. */ Bool -TouchEnsureSprite(DeviceIntPtr sourcedev, TouchPointInfoPtr ti, - InternalEvent *ev) +TouchBuildSprite(DeviceIntPtr sourcedev, TouchPointInfoPtr ti, + InternalEvent *ev) { TouchClassPtr t = sourcedev->touch; SpritePtr sprite = &ti->sprite; - /* We may not have a sprite if there are no applicable grabs or - * event selections, or if they've disappeared, or if all the grab - * owners have rejected the touch. Don't bother delivering motion - * events if not, but TouchEnd events still need to be processed so - * we can call FinishTouchPoint and release it for later use. */ - if (ev->any.type == ET_TouchEnd) - return TRUE; - else if (ev->any.type != ET_TouchBegin) - return (sprite->spriteTraceGood > 0); - if (t->mode == XIDirectTouch) { /* Focus immediately under the touchpoint in direct touch mode. * XXX: Do we need to handle crossing screens here? */ @@ -821,6 +815,7 @@ TouchAddRegularListener(DeviceIntPtr dev, TouchPointInfoPtr ti, if (mask & EVENT_CORE_MASK) { int coretype = GetCoreType(TouchGetPointerEventType(ev)); Mask core_filter = event_get_filter_from_type(dev, coretype); + OtherClients *oclients; /* window owner */ if (IsMaster(dev) && (win->eventMask & core_filter)) { @@ -832,13 +827,12 @@ TouchAddRegularListener(DeviceIntPtr dev, TouchPointInfoPtr ti, } /* all others */ - nt_list_for_each_entry(iclients, (InputClients *) wOtherClients(win), - next) { - if (!(iclients->mask[XIAllDevices] & core_filter)) + nt_list_for_each_entry(oclients, wOtherClients(win), next) { + if (!(oclients->mask & core_filter)) continue; TouchEventHistoryAllocate(ti); - TouchAddListener(ti, iclients->resource, CORE, + TouchAddListener(ti, oclients->resource, CORE, type, LISTENER_AWAITING_BEGIN, win); return TRUE; } @@ -874,6 +868,11 @@ TouchSetupListeners(DeviceIntPtr dev, TouchPointInfoPtr ti, InternalEvent *ev) if (dev->deviceGrab.grab) TouchAddActiveGrabListener(dev, ti, ev, dev->deviceGrab.grab); + /* We set up an active touch listener for existing touches, but not any + * passive grab or regular listeners. */ + if (ev->any.type != ET_TouchBegin) + return; + /* First, find all grabbing clients from the root window down * to the deepest child window. */ for (i = 0; i < sprite->spriteTraceGood; i++) { @@ -960,15 +959,48 @@ TouchListenerGone(XID resource) } int +TouchListenerAcceptReject(DeviceIntPtr dev, TouchPointInfoPtr ti, int listener, + int mode) +{ + InternalEvent *events; + int nev; + int i; + + if (listener > 0) { + if (mode == XIRejectTouch) + TouchRejected(dev, ti, ti->listeners[listener].listener, NULL); + else + ti->listeners[listener].state = LISTENER_EARLY_ACCEPT; + + return Success; + } + + events = InitEventList(GetMaximumEventsNum()); + if (!events) { + BUG_WARN_MSG(TRUE, "Failed to allocate touch ownership events\n"); + return BadAlloc; + } + + nev = GetTouchOwnershipEvents(events, dev, ti, mode, + ti->listeners[0].listener, 0); + BUG_WARN_MSG(nev == 0, "Failed to get touch ownership events\n"); + + for (i = 0; i < nev; i++) + mieqProcessDeviceEvent(dev, events + i, NULL); + + ProcessInputEvents(); + + FreeEventList(events, GetMaximumEventsNum()); + + return nev ? Success : BadMatch; +} + +int TouchAcceptReject(ClientPtr client, DeviceIntPtr dev, int mode, uint32_t touchid, Window grab_window, XID *error) { TouchPointInfoPtr ti; - int nev, i; - InternalEvent *events = InitEventList(GetMaximumEventsNum()); - - if (!events) - return BadAlloc; + int i; if (!dev->touch) { *error = dev->id; @@ -989,24 +1021,5 @@ TouchAcceptReject(ClientPtr client, DeviceIntPtr dev, int mode, if (i == ti->num_listeners) return BadAccess; - if (i > 0) { - if (mode == XIRejectTouch) - TouchRejected(dev, ti, ti->listeners[i].listener, NULL); - else - ti->listeners[i].state = LISTENER_EARLY_ACCEPT; - - return Success; - } - - nev = GetTouchOwnershipEvents(events, dev, ti, mode, - ti->listeners[0].listener, 0); - if (nev == 0) - return BadAlloc; - for (i = 0; i < nev; i++) - mieqProcessDeviceEvent(dev, events + i, NULL); - - ProcessInputEvents(); - - FreeEventList(events, GetMaximumEventsNum()); - return Success; + return TouchListenerAcceptReject(dev, ti, i, mode); } diff --git a/hw/xfree86/dixmods/extmod/xf86vmode.c b/hw/xfree86/dixmods/extmod/xf86vmode.c index 6e2a8e9b2..68c4b583f 100644 --- a/hw/xfree86/dixmods/extmod/xf86vmode.c +++ b/hw/xfree86/dixmods/extmod/xf86vmode.c @@ -75,8 +75,7 @@ static unsigned char XF86VidModeReqCode = 0; #ifdef XF86VIDMODE_EVENTS static int XF86VidModeEventBase = 0; -static void SXF86VidModeNotifyEvent(); -xXF86VidModeNotifyEvent * /* from */ , xXF86VidModeNotifyEvent * /* to */ +static void SXF86VidModeNotifyEvent(xXF86VidModeNotifyEvent * /* from */ , xXF86VidModeNotifyEvent * /* to */ ); static RESTYPE EventType; /* resource type for event masks */ @@ -117,20 +116,22 @@ static DevPrivateKeyRec ScreenPrivateKeyRec; #define DEBUG_P(x) /**/ #endif static int - ClientMajorVersion(ClientPtr client) { +ClientMajorVersion(ClientPtr client) +{ VidModePrivPtr pPriv; - pPriv = VM_GETPRIV(client); + pPriv = VM_GETPRIV(client); if (!pPriv) - return 0; + return 0; else - return pPriv->major; + return pPriv->major; } + #ifdef XF86VIDMODE_EVENTS static void - CheckScreenPrivate(pScreen) +CheckScreenPrivate(pScreen) ScreenPtr - pScreen; + pScreen; { SetupScreen(pScreen); @@ -142,9 +143,10 @@ ScreenPtr } } -static XF86VidModeScreenPrivatePtr MakeScreenPrivate(pScreen) +static XF86VidModeScreenPrivatePtr +MakeScreenPrivate(pScreen) ScreenPtr - pScreen; + pScreen; { SetupScreen(pScreen); @@ -160,18 +162,22 @@ ScreenPtr } static unsigned long - getEventMask(ScreenPtr pScreen, ClientPtr client) { +getEventMask(ScreenPtr pScreen, ClientPtr client) +{ SetupScreen(pScreen); XF86VidModeEventPtr pEv; if (!pPriv) - return 0; + return 0; for (pEv = pPriv->events; pEv; pEv = pEv->next) if (pEv->client == client) return pEv->mask; - return 0; -} static Bool - setEventMask(ScreenPtr pScreen, ClientPtr client, unsigned long mask) { + return 0; +} + +static Bool +setEventMask(ScreenPtr pScreen, ClientPtr client, unsigned long mask) +{ SetupScreen(pScreen); XF86VidModeEventPtr pEv, *pPrev; @@ -181,7 +187,8 @@ static unsigned long pPriv = MakeScreenPrivate(pScreen); if (!pPriv) return FALSE; - } for (pPrev = &pPriv->events; pEv = *pPrev; pPrev = &pEv->next) + } + for (pPrev = &pPriv->events; pEv = *pPrev; pPrev = &pEv->next) if (pEv->client == client) break; if (mask == 0) { @@ -208,38 +215,43 @@ static unsigned long } static int - XF86VidModeFreeEvents(pointer value, XID id) { +XF86VidModeFreeEvents(pointer value, XID id) +{ XF86VidModeEventPtr pOld = (XF86VidModeEventPtr) value; ScreenPtr pScreen = pOld->screen; - SetupScreen(pScreen); + + SetupScreen(pScreen); XF86VidModeEventPtr pEv, *pPrev; if (!pPriv) - return TRUE; + return TRUE; for (pPrev = &pPriv->events; pEv = *pPrev; pPrev = &pEv->next) if (pEv == pOld) break; if (!pEv) - return TRUE; + return TRUE; *pPrev = pEv->next; - free(pEv); - CheckScreenPrivate(pScreen); - return TRUE; -} static void - SendXF86VidModeNotify(ScreenPtr pScreen, int state, Bool forced) { + free(pEv); + CheckScreenPrivate(pScreen); + return TRUE; +} + +static void +SendXF86VidModeNotify(ScreenPtr pScreen, int state, Bool forced) +{ XF86VidModeScreenPrivatePtr pPriv; XF86VidModeEventPtr pEv; unsigned long mask; xXF86VidModeNotifyEvent ev; int kind; - UpdateCurrentTimeIf(); - mask = XF86VidModeNotifyMask; - pScreen = screenInfo.screens[pScreen->myNum]; - pPriv = GetScreenPrivate(pScreen); + UpdateCurrentTimeIf(); + mask = XF86VidModeNotifyMask; + pScreen = screenInfo.screens[pScreen->myNum]; + pPriv = GetScreenPrivate(pScreen); if (!pPriv) - return; - kind = XF86VidModeModeChange; + return; + kind = XF86VidModeModeChange; for (pEv = pPriv->events; pEv; pEv = pEv->next) { if (!(pEv->mask & mask)) continue; @@ -251,8 +263,10 @@ static int ev.forced = forced; WriteEventsToClient(pEv->client, 1, (xEvent *) &ev); }} static void - SXF86VidModeNotifyEvent(xXF86VidModeNotifyEvent * from, - xXF86VidModeNotifyEvent * to) { + +SXF86VidModeNotifyEvent(xXF86VidModeNotifyEvent * from, + xXF86VidModeNotifyEvent * to) +{ to->type = from->type; to->state = from->state; cpswaps(from->sequenceNumber, to->sequenceNumber); @@ -264,29 +278,31 @@ static int #endif static int - ProcXF86VidModeQueryVersion(ClientPtr client) { +ProcXF86VidModeQueryVersion(ClientPtr client) +{ xXF86VidModeQueryVersionReply rep; - DEBUG_P("XF86VidModeQueryVersion"); + DEBUG_P("XF86VidModeQueryVersion"); - REQUEST_SIZE_MATCH(xXF86VidModeQueryVersionReq); - rep.type = X_Reply; - rep.length = 0; - rep.sequenceNumber = client->sequence; - rep.majorVersion = SERVER_XF86VIDMODE_MAJOR_VERSION; - rep.minorVersion = SERVER_XF86VIDMODE_MINOR_VERSION; + REQUEST_SIZE_MATCH(xXF86VidModeQueryVersionReq); + rep.type = X_Reply; + rep.length = 0; + rep.sequenceNumber = client->sequence; + rep.majorVersion = SERVER_XF86VIDMODE_MAJOR_VERSION; + rep.minorVersion = SERVER_XF86VIDMODE_MINOR_VERSION; if (client->swapped) { swaps(&rep.sequenceNumber); swapl(&rep.length); swaps(&rep.majorVersion); swaps(&rep.minorVersion); - } WriteToClient(client, sizeof(xXF86VidModeQueryVersionReply), - (char *) &rep); + } + WriteToClient(client, sizeof(xXF86VidModeQueryVersionReply), (char *) &rep); return Success; } static int - ProcXF86VidModeGetModeLine(ClientPtr client) { +ProcXF86VidModeGetModeLine(ClientPtr client) +{ REQUEST(xXF86VidModeGetModeLineReq); xXF86VidModeGetModeLineReply rep; xXF86OldVidModeGetModeLineReply oldrep; @@ -294,11 +310,11 @@ static int int dotClock; int ver; - DEBUG_P("XF86VidModeGetModeline"); + DEBUG_P("XF86VidModeGetModeline"); - ver = ClientMajorVersion(client); - REQUEST_SIZE_MATCH(xXF86VidModeGetModeLineReq); - rep.type = X_Reply; + ver = ClientMajorVersion(client); + REQUEST_SIZE_MATCH(xXF86VidModeGetModeLineReq); + rep.type = X_Reply; if (ver < 2) { rep.length = bytes_to_int32(SIZEOF(xXF86OldVidModeGetModeLineReply) - SIZEOF(xGenericReply)); @@ -386,7 +402,8 @@ static int } static int - ProcXF86VidModeGetAllModeLines(ClientPtr client) { +ProcXF86VidModeGetAllModeLines(ClientPtr client) +{ REQUEST(xXF86VidModeGetAllModeLinesReq); xXF86VidModeGetAllModeLinesReply rep; xXF86VidModeModeInfo mdinf; @@ -395,38 +412,39 @@ static int int modecount, dotClock; int ver; - DEBUG_P("XF86VidModeGetAllModelines"); + DEBUG_P("XF86VidModeGetAllModelines"); - REQUEST_SIZE_MATCH(xXF86VidModeGetAllModeLinesReq); + REQUEST_SIZE_MATCH(xXF86VidModeGetAllModeLinesReq); if (stuff->screen >= screenInfo.numScreens) - return BadValue; + return BadValue; - ver = ClientMajorVersion(client); + ver = ClientMajorVersion(client); - modecount = VidModeGetNumOfModes(stuff->screen); + modecount = VidModeGetNumOfModes(stuff->screen); if (modecount < 1) - return VidModeErrorBase + XF86VidModeExtensionDisabled; + return VidModeErrorBase + XF86VidModeExtensionDisabled; if (!VidModeGetFirstModeline(stuff->screen, &mode, &dotClock)) - return BadValue; + return BadValue; - rep.type = X_Reply; - rep.length = SIZEOF(xXF86VidModeGetAllModeLinesReply) - + rep.type = X_Reply; + rep.length = SIZEOF(xXF86VidModeGetAllModeLinesReply) - SIZEOF(xGenericReply); if (ver < 2) - rep.length += modecount * sizeof(xXF86OldVidModeModeInfo); + rep.length += modecount * sizeof(xXF86OldVidModeModeInfo); else - rep.length += modecount * sizeof(xXF86VidModeModeInfo); - rep.length >>= 2; - rep.sequenceNumber = client->sequence; - rep.modecount = modecount; + rep.length += modecount * sizeof(xXF86VidModeModeInfo); + rep.length >>= 2; + rep.sequenceNumber = client->sequence; + rep.modecount = modecount; if (client->swapped) { swaps(&rep.sequenceNumber); swapl(&rep.length); swapl(&rep.modecount); - } WriteToClient(client, sizeof(xXF86VidModeGetAllModeLinesReply), - (char *) &rep); + } + WriteToClient(client, sizeof(xXF86VidModeGetAllModeLinesReply), + (char *) &rep); do { mdinf.dotclock = dotClock; @@ -492,7 +510,8 @@ static int && VidModeGetModeValue(mode, VIDMODE_FLAGS) == stuff->flags ) static int - ProcXF86VidModeAddModeLine(ClientPtr client) { +ProcXF86VidModeAddModeLine(ClientPtr client) +{ REQUEST(xXF86VidModeAddModeLineReq); xXF86OldVidModeAddModeLineReq *oldstuff = (xXF86OldVidModeAddModeLineReq *) client->requestBuffer; @@ -502,9 +521,9 @@ static int int dotClock; int ver; - DEBUG_P("XF86VidModeAddModeline"); + DEBUG_P("XF86VidModeAddModeline"); - ver = ClientMajorVersion(client); + ver = ClientMajorVersion(client); if (ver < 2) { /* convert from old format */ stuff = &newstuff; @@ -533,7 +552,8 @@ static int stuff->after_vsyncend = oldstuff->after_vsyncend; stuff->after_vtotal = oldstuff->after_vtotal; stuff->after_flags = oldstuff->after_flags; - } if (xf86GetVerbosity() > DEFAULT_XF86VIDMODE_VERBOSITY) { + } + if (xf86GetVerbosity() > DEFAULT_XF86VIDMODE_VERBOSITY) { ErrorF("AddModeLine - scrn: %d clock: %ld\n", (int) stuff->screen, (unsigned long) stuff->dotclock); ErrorF("AddModeLine - hdsp: %d hbeg: %d hend: %d httl: %d\n", @@ -654,7 +674,8 @@ static int } static int - ProcXF86VidModeDeleteModeLine(ClientPtr client) { +ProcXF86VidModeDeleteModeLine(ClientPtr client) +{ REQUEST(xXF86VidModeDeleteModeLineReq); xXF86OldVidModeDeleteModeLineReq *oldstuff = (xXF86OldVidModeDeleteModeLineReq *) client->requestBuffer; @@ -663,9 +684,9 @@ static int int len, dotClock; int ver; - DEBUG_P("XF86VidModeDeleteModeline"); + DEBUG_P("XF86VidModeDeleteModeline"); - ver = ClientMajorVersion(client); + ver = ClientMajorVersion(client); if (ver < 2) { /* convert from old format */ stuff = &newstuff; @@ -683,7 +704,8 @@ static int stuff->vtotal = oldstuff->vtotal; stuff->flags = oldstuff->flags; stuff->privsize = oldstuff->privsize; - } if (xf86GetVerbosity() > DEFAULT_XF86VIDMODE_VERBOSITY) { + } + if (xf86GetVerbosity() > DEFAULT_XF86VIDMODE_VERBOSITY) { ErrorF("DeleteModeLine - scrn: %d clock: %ld\n", (int) stuff->screen, (unsigned long) stuff->dotclock); ErrorF(" hdsp: %d hbeg: %d hend: %d httl: %d\n", @@ -777,7 +799,8 @@ static int } static int - ProcXF86VidModeModModeLine(ClientPtr client) { +ProcXF86VidModeModModeLine(ClientPtr client) +{ REQUEST(xXF86VidModeModModeLineReq); xXF86OldVidModeModModeLineReq *oldstuff = (xXF86OldVidModeModModeLineReq *) client->requestBuffer; @@ -786,9 +809,9 @@ static int int len, dotClock; int ver; - DEBUG_P("XF86VidModeModModeline"); + DEBUG_P("XF86VidModeModModeline"); - ver = ClientMajorVersion(client); + ver = ClientMajorVersion(client); if (ver < 2) { /* convert from old format */ stuff = &newstuff; @@ -805,7 +828,8 @@ static int stuff->vtotal = oldstuff->vtotal; stuff->flags = oldstuff->flags; stuff->privsize = oldstuff->privsize; - } if (xf86GetVerbosity() > DEFAULT_XF86VIDMODE_VERBOSITY) { + } + if (xf86GetVerbosity() > DEFAULT_XF86VIDMODE_VERBOSITY) { ErrorF("ModModeLine - scrn: %d hdsp: %d hbeg: %d hend: %d httl: %d\n", (int) stuff->screen, stuff->hdisplay, stuff->hsyncstart, stuff->hsyncend, stuff->htotal); @@ -903,7 +927,8 @@ static int } static int - ProcXF86VidModeValidateModeLine(ClientPtr client) { +ProcXF86VidModeValidateModeLine(ClientPtr client) +{ REQUEST(xXF86VidModeValidateModeLineReq); xXF86OldVidModeValidateModeLineReq *oldstuff = (xXF86OldVidModeValidateModeLineReq *) client->requestBuffer; @@ -913,9 +938,9 @@ static int int len, status, dotClock; int ver; - DEBUG_P("XF86VidModeValidateModeline"); + DEBUG_P("XF86VidModeValidateModeline"); - ver = ClientMajorVersion(client); + ver = ClientMajorVersion(client); if (ver < 2) { /* convert from old format */ stuff = &newstuff; @@ -933,7 +958,8 @@ static int stuff->vtotal = oldstuff->vtotal; stuff->flags = oldstuff->flags; stuff->privsize = oldstuff->privsize; - } if (xf86GetVerbosity() > DEFAULT_XF86VIDMODE_VERBOSITY) { + } + if (xf86GetVerbosity() > DEFAULT_XF86VIDMODE_VERBOSITY) { ErrorF("ValidateModeLine - scrn: %d clock: %ld\n", (int) stuff->screen, (unsigned long) stuff->dotclock); ErrorF(" hdsp: %d hbeg: %d hend: %d httl: %d\n", @@ -1022,7 +1048,8 @@ static int } static int - ProcXF86VidModeSwitchMode(ClientPtr client) { +ProcXF86VidModeSwitchMode(ClientPtr client) +{ REQUEST(xXF86VidModeSwitchModeReq); DEBUG_P("XF86VidModeSwitchMode"); @@ -1035,8 +1062,11 @@ static int VidModeZoomViewport(stuff->screen, (short) stuff->zoom); return Success; -} static int - ProcXF86VidModeSwitchToMode(ClientPtr client) { +} + +static int +ProcXF86VidModeSwitchToMode(ClientPtr client) +{ REQUEST(xXF86VidModeSwitchToModeReq); xXF86OldVidModeSwitchToModeReq *oldstuff = (xXF86OldVidModeSwitchToModeReq *) client->requestBuffer; @@ -1045,9 +1075,9 @@ static int int len, dotClock; int ver; - DEBUG_P("XF86VidModeSwitchToMode"); + DEBUG_P("XF86VidModeSwitchToMode"); - ver = ClientMajorVersion(client); + ver = ClientMajorVersion(client); if (ver < 2) { /* convert from old format */ stuff = &newstuff; @@ -1065,7 +1095,8 @@ static int stuff->vtotal = oldstuff->vtotal; stuff->flags = oldstuff->flags; stuff->privsize = oldstuff->privsize; - } if (xf86GetVerbosity() > DEFAULT_XF86VIDMODE_VERBOSITY) { + } + if (xf86GetVerbosity() > DEFAULT_XF86VIDMODE_VERBOSITY) { ErrorF("SwitchToMode - scrn: %d clock: %ld\n", (int) stuff->screen, (unsigned long) stuff->dotclock); ErrorF(" hdsp: %d hbeg: %d hend: %d httl: %d\n", @@ -1138,7 +1169,8 @@ static int } static int - ProcXF86VidModeLockModeSwitch(ClientPtr client) { +ProcXF86VidModeLockModeSwitch(ClientPtr client) +{ REQUEST(xXF86VidModeLockModeSwitchReq); REQUEST_SIZE_MATCH(xXF86VidModeLockModeSwitchReq); @@ -1152,53 +1184,57 @@ static int return VidModeErrorBase + XF86VidModeZoomLocked; return Success; -} static int - ProcXF86VidModeGetMonitor(ClientPtr client) { +} + +static int +ProcXF86VidModeGetMonitor(ClientPtr client) +{ REQUEST(xXF86VidModeGetMonitorReq); xXF86VidModeGetMonitorReply rep; CARD32 *hsyncdata, *vsyncdata; int i, nHsync, nVrefresh; pointer monitor; - DEBUG_P("XF86VidModeGetMonitor"); + DEBUG_P("XF86VidModeGetMonitor"); - REQUEST_SIZE_MATCH(xXF86VidModeGetMonitorReq); + REQUEST_SIZE_MATCH(xXF86VidModeGetMonitorReq); if (stuff->screen >= screenInfo.numScreens) - return BadValue; + return BadValue; if (!VidModeGetMonitor(stuff->screen, &monitor)) - return BadValue; + return BadValue; - nHsync = VidModeGetMonitorValue(monitor, VIDMODE_MON_NHSYNC, 0).i; - nVrefresh = VidModeGetMonitorValue(monitor, VIDMODE_MON_NVREFRESH, 0).i; + nHsync = VidModeGetMonitorValue(monitor, VIDMODE_MON_NHSYNC, 0).i; + nVrefresh = VidModeGetMonitorValue(monitor, VIDMODE_MON_NVREFRESH, 0).i; - rep.type = X_Reply; + rep.type = X_Reply; if ((char *) (VidModeGetMonitorValue(monitor, VIDMODE_MON_VENDOR, 0)).ptr) - rep.vendorLength = strlen((char *) (VidModeGetMonitorValue(monitor, - VIDMODE_MON_VENDOR, - 0)).ptr); + rep.vendorLength = strlen((char *) (VidModeGetMonitorValue(monitor, + VIDMODE_MON_VENDOR, + 0)).ptr); else - rep.vendorLength = 0; + rep.vendorLength = 0; if ((char *) (VidModeGetMonitorValue(monitor, VIDMODE_MON_MODEL, 0)).ptr) - rep.modelLength = strlen((char *) (VidModeGetMonitorValue(monitor, - VIDMODE_MON_MODEL, - 0)).ptr); + rep.modelLength = strlen((char *) (VidModeGetMonitorValue(monitor, + VIDMODE_MON_MODEL, + 0)).ptr); else - rep.modelLength = 0; - rep.length = + rep.modelLength = 0; + rep.length = bytes_to_int32(SIZEOF(xXF86VidModeGetMonitorReply) - SIZEOF(xGenericReply) + (nHsync + nVrefresh) * sizeof(CARD32) + pad_to_int32(rep.vendorLength) + pad_to_int32(rep.modelLength)); - rep.sequenceNumber = client->sequence; - rep.nhsync = nHsync; - rep.nvsync = nVrefresh; - hsyncdata = malloc(nHsync * sizeof(CARD32)); + rep.sequenceNumber = client->sequence; + rep.nhsync = nHsync; + rep.nvsync = nVrefresh; + hsyncdata = malloc(nHsync * sizeof(CARD32)); if (!hsyncdata) { return BadAlloc; - } vsyncdata = malloc(nVrefresh * sizeof(CARD32)); + } + vsyncdata = malloc(nVrefresh * sizeof(CARD32)); if (!vsyncdata) { free(hsyncdata); @@ -1208,19 +1244,18 @@ static int for (i = 0; i < nHsync; i++) { hsyncdata[i] = (unsigned short) (VidModeGetMonitorValue(monitor, VIDMODE_MON_HSYNC_LO, - i)). - f | (unsigned - short) (VidModeGetMonitorValue(monitor, VIDMODE_MON_HSYNC_HI, - i)).f << 16; + i)).f | + (unsigned + short) (VidModeGetMonitorValue(monitor, VIDMODE_MON_HSYNC_HI, + i)).f << 16; } for (i = 0; i < nVrefresh; i++) { vsyncdata[i] = (unsigned short) (VidModeGetMonitorValue(monitor, VIDMODE_MON_VREFRESH_LO, - i)). - f | (unsigned - short) (VidModeGetMonitorValue(monitor, - VIDMODE_MON_VREFRESH_HI, - i)).f << 16; + i)).f | + (unsigned + short) (VidModeGetMonitorValue(monitor, VIDMODE_MON_VREFRESH_HI, + i)).f << 16; } if (client->swapped) { @@ -1249,38 +1284,40 @@ static int } static int - ProcXF86VidModeGetViewPort(ClientPtr client) { +ProcXF86VidModeGetViewPort(ClientPtr client) +{ REQUEST(xXF86VidModeGetViewPortReq); xXF86VidModeGetViewPortReply rep; int x, y; - DEBUG_P("XF86VidModeGetViewPort"); + DEBUG_P("XF86VidModeGetViewPort"); - REQUEST_SIZE_MATCH(xXF86VidModeGetViewPortReq); + REQUEST_SIZE_MATCH(xXF86VidModeGetViewPortReq); if (stuff->screen >= screenInfo.numScreens) - return BadValue; + return BadValue; - rep.type = X_Reply; - rep.length = 0; - rep.sequenceNumber = client->sequence; + rep.type = X_Reply; + rep.length = 0; + rep.sequenceNumber = client->sequence; - VidModeGetViewPort(stuff->screen, &x, &y); - rep.x = x; - rep.y = y; + VidModeGetViewPort(stuff->screen, &x, &y); + rep.x = x; + rep.y = y; if (client->swapped) { swaps(&rep.sequenceNumber); swapl(&rep.length); swapl(&rep.x); swapl(&rep.y); - } WriteToClient(client, SIZEOF(xXF86VidModeGetViewPortReply), - (char *) &rep); + } + WriteToClient(client, SIZEOF(xXF86VidModeGetViewPortReply), (char *) &rep); return Success; } static int - ProcXF86VidModeSetViewPort(ClientPtr client) { +ProcXF86VidModeSetViewPort(ClientPtr client) +{ REQUEST(xXF86VidModeSetViewPortReq); DEBUG_P("XF86VidModeSetViewPort"); @@ -1294,8 +1331,11 @@ static int return BadValue; return Success; -} static int - ProcXF86VidModeGetDotClocks(ClientPtr client) { +} + +static int +ProcXF86VidModeGetDotClocks(ClientPtr client) +{ REQUEST(xXF86VidModeGetDotClocksReq); xXF86VidModeGetDotClocksReply rep; int n; @@ -1304,31 +1344,33 @@ static int int *Clocks = NULL; Bool ClockProg; - DEBUG_P("XF86VidModeGetDotClocks"); + DEBUG_P("XF86VidModeGetDotClocks"); - REQUEST_SIZE_MATCH(xXF86VidModeGetDotClocksReq); + REQUEST_SIZE_MATCH(xXF86VidModeGetDotClocksReq); if (stuff->screen >= screenInfo.numScreens) - return BadValue; + return BadValue; - numClocks = VidModeGetNumOfClocks(stuff->screen, &ClockProg); + numClocks = VidModeGetNumOfClocks(stuff->screen, &ClockProg); - rep.type = X_Reply; - rep.length = bytes_to_int32(SIZEOF(xXF86VidModeGetDotClocksReply) - - SIZEOF(xGenericReply) + numClocks); - rep.sequenceNumber = client->sequence; - rep.clocks = numClocks; - rep.maxclocks = MAXCLOCKS; - rep.flags = 0; + rep.type = X_Reply; + rep.length = bytes_to_int32(SIZEOF(xXF86VidModeGetDotClocksReply) + - SIZEOF(xGenericReply) + numClocks); + rep.sequenceNumber = client->sequence; + rep.clocks = numClocks; + rep.maxclocks = MAXCLOCKS; + rep.flags = 0; if (!ClockProg) { Clocks = malloc(numClocks * sizeof(int)); if (!Clocks) - return BadValue; + return BadValue; if (!VidModeGetClocks(stuff->screen, Clocks)) { free(Clocks); return BadValue; - }} if (ClockProg) { + } + } + if (ClockProg) { rep.flags |= CLKFLAG_PROGRAMABLE; } if (client->swapped) { @@ -1356,7 +1398,8 @@ static int } static int - ProcXF86VidModeSetGamma(ClientPtr client) { +ProcXF86VidModeSetGamma(ClientPtr client) +{ REQUEST(xXF86VidModeSetGammaReq); DEBUG_P("XF86VidModeSetGamma"); @@ -1372,79 +1415,89 @@ static int return BadValue; return Success; -} static int - ProcXF86VidModeGetGamma(ClientPtr client) { +} + +static int +ProcXF86VidModeGetGamma(ClientPtr client) +{ REQUEST(xXF86VidModeGetGammaReq); xXF86VidModeGetGammaReply rep; float red, green, blue; - DEBUG_P("XF86VidModeGetGamma"); + DEBUG_P("XF86VidModeGetGamma"); - REQUEST_SIZE_MATCH(xXF86VidModeGetGammaReq); + REQUEST_SIZE_MATCH(xXF86VidModeGetGammaReq); if (stuff->screen >= screenInfo.numScreens) - return BadValue; + return BadValue; - rep.type = X_Reply; - rep.length = 0; - rep.sequenceNumber = client->sequence; + rep.type = X_Reply; + rep.length = 0; + rep.sequenceNumber = client->sequence; if (!VidModeGetGamma(stuff->screen, &red, &green, &blue)) - return BadValue; - rep.red = (CARD32) (red * 10000.); - rep.green = (CARD32) (green * 10000.); - rep.blue = (CARD32) (blue * 10000.); + return BadValue; + rep.red = (CARD32) (red * 10000.); + rep.green = (CARD32) (green * 10000.); + rep.blue = (CARD32) (blue * 10000.); if (client->swapped) { swaps(&rep.sequenceNumber); swapl(&rep.length); swapl(&rep.red); swapl(&rep.green); swapl(&rep.blue); - } WriteToClient(client, sizeof(xXF86VidModeGetGammaReply), (char *) &rep); + } + WriteToClient(client, sizeof(xXF86VidModeGetGammaReply), (char *) &rep); return Success; } static int - ProcXF86VidModeSetGammaRamp(ClientPtr client) { +ProcXF86VidModeSetGammaRamp(ClientPtr client) +{ CARD16 *r, *g, *b; int length; - REQUEST(xXF86VidModeSetGammaRampReq); + + REQUEST(xXF86VidModeSetGammaRampReq); if (stuff->screen >= screenInfo.numScreens) - return BadValue; + return BadValue; if (stuff->size != VidModeGetGammaRampSize(stuff->screen)) - return BadValue; + return BadValue; - length = (stuff->size + 1) & ~1; + length = (stuff->size + 1) & ~1; - REQUEST_FIXED_SIZE(xXF86VidModeSetGammaRampReq, length * 6); + REQUEST_FIXED_SIZE(xXF86VidModeSetGammaRampReq, length * 6); - r = (CARD16 *) &stuff[1]; - g = r + length; - b = g + length; + r = (CARD16 *) &stuff[1]; + g = r + length; + b = g + length; if (!VidModeSetGammaRamp(stuff->screen, stuff->size, r, g, b)) - return BadValue; + return BadValue; - return Success; -} static int - ProcXF86VidModeGetGammaRamp(ClientPtr client) { + return Success; +} + +static int +ProcXF86VidModeGetGammaRamp(ClientPtr client) +{ CARD16 *ramp = NULL; int length; size_t ramplen = 0; xXF86VidModeGetGammaRampReply rep; - REQUEST(xXF86VidModeGetGammaRampReq); + + REQUEST(xXF86VidModeGetGammaRampReq); if (stuff->screen >= screenInfo.numScreens) - return BadValue; + return BadValue; if (stuff->size != VidModeGetGammaRampSize(stuff->screen)) - return BadValue; + return BadValue; - REQUEST_SIZE_MATCH(xXF86VidModeGetGammaRampReq); + REQUEST_SIZE_MATCH(xXF86VidModeGetGammaRampReq); - length = (stuff->size + 1) & ~1; + length = (stuff->size + 1) & ~1; if (stuff->size) { ramplen = length * 3 * sizeof(CARD16); @@ -1455,7 +1508,9 @@ static int ramp, ramp + length, ramp + (length * 2))) { free(ramp); return BadValue; - }} rep.type = X_Reply; + } + } + rep.type = X_Reply; rep.length = (length >> 1) * 3; rep.sequenceNumber = client->sequence; rep.size = stuff->size; @@ -1476,47 +1531,53 @@ static int } static int - ProcXF86VidModeGetGammaRampSize(ClientPtr client) { +ProcXF86VidModeGetGammaRampSize(ClientPtr client) +{ xXF86VidModeGetGammaRampSizeReply rep; - REQUEST(xXF86VidModeGetGammaRampSizeReq); + + REQUEST(xXF86VidModeGetGammaRampSizeReq); if (stuff->screen >= screenInfo.numScreens) - return BadValue; + return BadValue; - REQUEST_SIZE_MATCH(xXF86VidModeGetGammaRampSizeReq); + REQUEST_SIZE_MATCH(xXF86VidModeGetGammaRampSizeReq); - rep.type = X_Reply; - rep.length = 0; - rep.sequenceNumber = client->sequence; - rep.size = VidModeGetGammaRampSize(stuff->screen); + rep.type = X_Reply; + rep.length = 0; + rep.sequenceNumber = client->sequence; + rep.size = VidModeGetGammaRampSize(stuff->screen); if (client->swapped) { swaps(&rep.sequenceNumber); swapl(&rep.length); swaps(&rep.size); - } WriteToClient(client, sizeof(xXF86VidModeGetGammaRampSizeReply), - (char *) &rep); + } + WriteToClient(client, sizeof(xXF86VidModeGetGammaRampSizeReply), + (char *) &rep); return Success; } static int - ProcXF86VidModeGetPermissions(ClientPtr client) { +ProcXF86VidModeGetPermissions(ClientPtr client) +{ xXF86VidModeGetPermissionsReply rep; - REQUEST(xXF86VidModeGetPermissionsReq); + + REQUEST(xXF86VidModeGetPermissionsReq); if (stuff->screen >= screenInfo.numScreens) - return BadValue; + return BadValue; - REQUEST_SIZE_MATCH(xXF86VidModeGetPermissionsReq); + REQUEST_SIZE_MATCH(xXF86VidModeGetPermissionsReq); - rep.type = X_Reply; - rep.length = 0; - rep.sequenceNumber = client->sequence; - rep.permissions = XF86VM_READ_PERMISSION; + rep.type = X_Reply; + rep.length = 0; + rep.sequenceNumber = client->sequence; + rep.permissions = XF86VM_READ_PERMISSION; if (xf86GetVidModeEnabled() && (xf86GetVidModeAllowNonLocal() || LocalClient(client))) { rep.permissions |= XF86VM_WRITE_PERMISSION; - } if (client->swapped) { + } + if (client->swapped) { swaps(&rep.sequenceNumber); swapl(&rep.length); swapl(&rep.permissions); @@ -1528,21 +1589,23 @@ static int } static int - ProcXF86VidModeSetClientVersion(ClientPtr client) { +ProcXF86VidModeSetClientVersion(ClientPtr client) +{ REQUEST(xXF86VidModeSetClientVersionReq); VidModePrivPtr pPriv; - DEBUG_P("XF86VidModeSetClientVersion"); + DEBUG_P("XF86VidModeSetClientVersion"); - REQUEST_SIZE_MATCH(xXF86VidModeSetClientVersionReq); + REQUEST_SIZE_MATCH(xXF86VidModeSetClientVersionReq); if ((pPriv = VM_GETPRIV(client)) == NULL) { pPriv = malloc(sizeof(VidModePrivRec)); if (!pPriv) return BadAlloc; VM_SETPRIV(client, pPriv); - } pPriv->major = stuff->major; + } + pPriv->major = stuff->major; pPriv->minor = stuff->minor; @@ -1550,85 +1613,103 @@ static int } static int - ProcXF86VidModeDispatch(ClientPtr client) { +ProcXF86VidModeDispatch(ClientPtr client) +{ REQUEST(xReq); switch (stuff->data) { case X_XF86VidModeQueryVersion: return ProcXF86VidModeQueryVersion(client); - case X_XF86VidModeGetModeLine:return ProcXF86VidModeGetModeLine(client); - case X_XF86VidModeGetMonitor:return ProcXF86VidModeGetMonitor(client); - case X_XF86VidModeGetAllModeLines:return - ProcXF86VidModeGetAllModeLines(client); - case X_XF86VidModeValidateModeLine:return - ProcXF86VidModeValidateModeLine(client); - case X_XF86VidModeGetViewPort:return ProcXF86VidModeGetViewPort(client); - case X_XF86VidModeGetDotClocks:return - ProcXF86VidModeGetDotClocks(client); - case X_XF86VidModeSetClientVersion:return - ProcXF86VidModeSetClientVersion(client); - case X_XF86VidModeGetGamma:return ProcXF86VidModeGetGamma(client); - case X_XF86VidModeGetGammaRamp:return - ProcXF86VidModeGetGammaRamp(client); - case X_XF86VidModeGetGammaRampSize:return - ProcXF86VidModeGetGammaRampSize(client); - case X_XF86VidModeGetPermissions:return - ProcXF86VidModeGetPermissions(client); - default:if (!xf86GetVidModeEnabled()) + case X_XF86VidModeGetModeLine: + return ProcXF86VidModeGetModeLine(client); + case X_XF86VidModeGetMonitor: + return ProcXF86VidModeGetMonitor(client); + case X_XF86VidModeGetAllModeLines: + return ProcXF86VidModeGetAllModeLines(client); + case X_XF86VidModeValidateModeLine: + return ProcXF86VidModeValidateModeLine(client); + case X_XF86VidModeGetViewPort: + return ProcXF86VidModeGetViewPort(client); + case X_XF86VidModeGetDotClocks: + return ProcXF86VidModeGetDotClocks(client); + case X_XF86VidModeSetClientVersion: + return ProcXF86VidModeSetClientVersion(client); + case X_XF86VidModeGetGamma: + return ProcXF86VidModeGetGamma(client); + case X_XF86VidModeGetGammaRamp: + return ProcXF86VidModeGetGammaRamp(client); + case X_XF86VidModeGetGammaRampSize: + return ProcXF86VidModeGetGammaRampSize(client); + case X_XF86VidModeGetPermissions: + return ProcXF86VidModeGetPermissions(client); + default: + if (!xf86GetVidModeEnabled()) return VidModeErrorBase + XF86VidModeExtensionDisabled; if (xf86GetVidModeAllowNonLocal() || LocalClient(client)) { switch (stuff->data) { case X_XF86VidModeAddModeLine: return ProcXF86VidModeAddModeLine(client); - case X_XF86VidModeDeleteModeLine:return - ProcXF86VidModeDeleteModeLine(client); - case X_XF86VidModeModModeLine:return - ProcXF86VidModeModModeLine(client); - case X_XF86VidModeSwitchMode:return - ProcXF86VidModeSwitchMode(client); - case X_XF86VidModeSwitchToMode:return - ProcXF86VidModeSwitchToMode(client); - case X_XF86VidModeLockModeSwitch:return - ProcXF86VidModeLockModeSwitch(client); - case X_XF86VidModeSetViewPort:return - ProcXF86VidModeSetViewPort(client); - case X_XF86VidModeSetGamma:return - ProcXF86VidModeSetGamma(client); - case X_XF86VidModeSetGammaRamp:return - ProcXF86VidModeSetGammaRamp(client); - default:return BadRequest; - }} + case X_XF86VidModeDeleteModeLine: + return ProcXF86VidModeDeleteModeLine(client); + case X_XF86VidModeModModeLine: + return ProcXF86VidModeModModeLine(client); + case X_XF86VidModeSwitchMode: + return ProcXF86VidModeSwitchMode(client); + case X_XF86VidModeSwitchToMode: + return ProcXF86VidModeSwitchToMode(client); + case X_XF86VidModeLockModeSwitch: + return ProcXF86VidModeLockModeSwitch(client); + case X_XF86VidModeSetViewPort: + return ProcXF86VidModeSetViewPort(client); + case X_XF86VidModeSetGamma: + return ProcXF86VidModeSetGamma(client); + case X_XF86VidModeSetGammaRamp: + return ProcXF86VidModeSetGammaRamp(client); + default: + return BadRequest; + } + } else - return VidModeErrorBase + XF86VidModeClientNotLocal; + return VidModeErrorBase + XF86VidModeClientNotLocal; } } static int - SProcXF86VidModeQueryVersion(ClientPtr client) { +SProcXF86VidModeQueryVersion(ClientPtr client) +{ REQUEST(xXF86VidModeQueryVersionReq); swaps(&stuff->length); return ProcXF86VidModeQueryVersion(client); -} static int - SProcXF86VidModeGetModeLine(ClientPtr client) { +} + +static int +SProcXF86VidModeGetModeLine(ClientPtr client) +{ REQUEST(xXF86VidModeGetModeLineReq); swaps(&stuff->length); REQUEST_SIZE_MATCH(xXF86VidModeGetModeLineReq); swaps(&stuff->screen); return ProcXF86VidModeGetModeLine(client); -} static int - SProcXF86VidModeGetAllModeLines(ClientPtr client) { +} + +static int +SProcXF86VidModeGetAllModeLines(ClientPtr client) +{ REQUEST(xXF86VidModeGetAllModeLinesReq); swaps(&stuff->length); REQUEST_SIZE_MATCH(xXF86VidModeGetAllModeLinesReq); swaps(&stuff->screen); return ProcXF86VidModeGetAllModeLines(client); -} static int - SProcXF86VidModeAddModeLine(ClientPtr client) { +} + +static int +SProcXF86VidModeAddModeLine(ClientPtr client) +{ xXF86OldVidModeAddModeLineReq *oldstuff = (xXF86OldVidModeAddModeLineReq *) client->requestBuffer; int ver; - REQUEST(xXF86VidModeAddModeLineReq); - ver = ClientMajorVersion(client); + REQUEST(xXF86VidModeAddModeLineReq); + ver = ClientMajorVersion(client); if (ver < 2) { swaps(&oldstuff->length); REQUEST_AT_LEAST_SIZE(xXF86OldVidModeAddModeLineReq); @@ -1666,13 +1747,14 @@ static int } static int - SProcXF86VidModeDeleteModeLine(ClientPtr client) { +SProcXF86VidModeDeleteModeLine(ClientPtr client) +{ xXF86OldVidModeDeleteModeLineReq *oldstuff = (xXF86OldVidModeDeleteModeLineReq *) client->requestBuffer; int ver; - REQUEST(xXF86VidModeDeleteModeLineReq); - ver = ClientMajorVersion(client); + REQUEST(xXF86VidModeDeleteModeLineReq); + ver = ClientMajorVersion(client); if (ver < 2) { swaps(&oldstuff->length); REQUEST_AT_LEAST_SIZE(xXF86OldVidModeDeleteModeLineReq); @@ -1710,13 +1792,14 @@ static int } static int - SProcXF86VidModeModModeLine(ClientPtr client) { +SProcXF86VidModeModModeLine(ClientPtr client) +{ xXF86OldVidModeModModeLineReq *oldstuff = (xXF86OldVidModeModModeLineReq *) client->requestBuffer; int ver; - REQUEST(xXF86VidModeModModeLineReq); - ver = ClientMajorVersion(client); + REQUEST(xXF86VidModeModModeLineReq); + ver = ClientMajorVersion(client); if (ver < 2) { swaps(&oldstuff->length); REQUEST_AT_LEAST_SIZE(xXF86OldVidModeModModeLineReq); @@ -1754,13 +1837,14 @@ static int } static int - SProcXF86VidModeValidateModeLine(ClientPtr client) { +SProcXF86VidModeValidateModeLine(ClientPtr client) +{ xXF86OldVidModeValidateModeLineReq *oldstuff = (xXF86OldVidModeValidateModeLineReq *) client->requestBuffer; int ver; - REQUEST(xXF86VidModeValidateModeLineReq); - ver = ClientMajorVersion(client); + REQUEST(xXF86VidModeValidateModeLineReq); + ver = ClientMajorVersion(client); if (ver < 2) { swaps(&oldstuff->length); REQUEST_AT_LEAST_SIZE(xXF86OldVidModeValidateModeLineReq); @@ -1798,44 +1882,60 @@ static int } static int - SProcXF86VidModeSwitchMode(ClientPtr client) { +SProcXF86VidModeSwitchMode(ClientPtr client) +{ REQUEST(xXF86VidModeSwitchModeReq); swaps(&stuff->length); REQUEST_SIZE_MATCH(xXF86VidModeSwitchModeReq); swaps(&stuff->screen); swaps(&stuff->zoom); return ProcXF86VidModeSwitchMode(client); -} static int - SProcXF86VidModeSwitchToMode(ClientPtr client) { +} + +static int +SProcXF86VidModeSwitchToMode(ClientPtr client) +{ REQUEST(xXF86VidModeSwitchToModeReq); swaps(&stuff->length); REQUEST_SIZE_MATCH(xXF86VidModeSwitchToModeReq); swapl(&stuff->screen); return ProcXF86VidModeSwitchToMode(client); -} static int - SProcXF86VidModeLockModeSwitch(ClientPtr client) { +} + +static int +SProcXF86VidModeLockModeSwitch(ClientPtr client) +{ REQUEST(xXF86VidModeLockModeSwitchReq); swaps(&stuff->length); REQUEST_SIZE_MATCH(xXF86VidModeLockModeSwitchReq); swaps(&stuff->screen); swaps(&stuff->lock); return ProcXF86VidModeLockModeSwitch(client); -} static int - SProcXF86VidModeGetMonitor(ClientPtr client) { +} + +static int +SProcXF86VidModeGetMonitor(ClientPtr client) +{ REQUEST(xXF86VidModeGetMonitorReq); swaps(&stuff->length); REQUEST_SIZE_MATCH(xXF86VidModeGetMonitorReq); swaps(&stuff->screen); return ProcXF86VidModeGetMonitor(client); -} static int - SProcXF86VidModeGetViewPort(ClientPtr client) { +} + +static int +SProcXF86VidModeGetViewPort(ClientPtr client) +{ REQUEST(xXF86VidModeGetViewPortReq); swaps(&stuff->length); REQUEST_SIZE_MATCH(xXF86VidModeGetViewPortReq); swaps(&stuff->screen); return ProcXF86VidModeGetViewPort(client); -} static int - SProcXF86VidModeSetViewPort(ClientPtr client) { +} + +static int +SProcXF86VidModeSetViewPort(ClientPtr client) +{ REQUEST(xXF86VidModeSetViewPortReq); swaps(&stuff->length); REQUEST_SIZE_MATCH(xXF86VidModeSetViewPortReq); @@ -1843,23 +1943,32 @@ static int swapl(&stuff->x); swapl(&stuff->y); return ProcXF86VidModeSetViewPort(client); -} static int - SProcXF86VidModeGetDotClocks(ClientPtr client) { +} + +static int +SProcXF86VidModeGetDotClocks(ClientPtr client) +{ REQUEST(xXF86VidModeGetDotClocksReq); swaps(&stuff->length); REQUEST_SIZE_MATCH(xXF86VidModeGetDotClocksReq); swaps(&stuff->screen); return ProcXF86VidModeGetDotClocks(client); -} static int - SProcXF86VidModeSetClientVersion(ClientPtr client) { +} + +static int +SProcXF86VidModeSetClientVersion(ClientPtr client) +{ REQUEST(xXF86VidModeSetClientVersionReq); swaps(&stuff->length); REQUEST_SIZE_MATCH(xXF86VidModeSetClientVersionReq); swaps(&stuff->major); swaps(&stuff->minor); return ProcXF86VidModeSetClientVersion(client); -} static int - SProcXF86VidModeSetGamma(ClientPtr client) { +} + +static int +SProcXF86VidModeSetGamma(ClientPtr client) +{ REQUEST(xXF86VidModeSetGammaReq); swaps(&stuff->length); REQUEST_SIZE_MATCH(xXF86VidModeSetGammaReq); @@ -1868,120 +1977,145 @@ static int swapl(&stuff->green); swapl(&stuff->blue); return ProcXF86VidModeSetGamma(client); -} static int - SProcXF86VidModeGetGamma(ClientPtr client) { +} + +static int +SProcXF86VidModeGetGamma(ClientPtr client) +{ REQUEST(xXF86VidModeGetGammaReq); swaps(&stuff->length); REQUEST_SIZE_MATCH(xXF86VidModeGetGammaReq); swaps(&stuff->screen); return ProcXF86VidModeGetGamma(client); -} static int - SProcXF86VidModeSetGammaRamp(ClientPtr client) { +} + +static int +SProcXF86VidModeSetGammaRamp(ClientPtr client) +{ int length; - REQUEST(xXF86VidModeSetGammaRampReq); - swaps(&stuff->length); - REQUEST_AT_LEAST_SIZE(xXF86VidModeSetGammaRampReq); - swaps(&stuff->size); - swaps(&stuff->screen); - length = ((stuff->size + 1) & ~1) * 6; - REQUEST_FIXED_SIZE(xXF86VidModeSetGammaRampReq, length); - SwapRestS(stuff); - return ProcXF86VidModeSetGammaRamp(client); -} static int - SProcXF86VidModeGetGammaRamp(ClientPtr client) { + + REQUEST(xXF86VidModeSetGammaRampReq); + swaps(&stuff->length); + REQUEST_AT_LEAST_SIZE(xXF86VidModeSetGammaRampReq); + swaps(&stuff->size); + swaps(&stuff->screen); + length = ((stuff->size + 1) & ~1) * 6; + REQUEST_FIXED_SIZE(xXF86VidModeSetGammaRampReq, length); + SwapRestS(stuff); + return ProcXF86VidModeSetGammaRamp(client); +} + +static int +SProcXF86VidModeGetGammaRamp(ClientPtr client) +{ REQUEST(xXF86VidModeGetGammaRampReq); swaps(&stuff->length); REQUEST_SIZE_MATCH(xXF86VidModeGetGammaRampReq); swaps(&stuff->size); swaps(&stuff->screen); return ProcXF86VidModeGetGammaRamp(client); -} static int - SProcXF86VidModeGetGammaRampSize(ClientPtr client) { +} + +static int +SProcXF86VidModeGetGammaRampSize(ClientPtr client) +{ REQUEST(xXF86VidModeGetGammaRampSizeReq); swaps(&stuff->length); REQUEST_SIZE_MATCH(xXF86VidModeGetGammaRampSizeReq); swaps(&stuff->screen); return ProcXF86VidModeGetGammaRampSize(client); -} static int - SProcXF86VidModeGetPermissions(ClientPtr client) { +} + +static int +SProcXF86VidModeGetPermissions(ClientPtr client) +{ REQUEST(xXF86VidModeGetPermissionsReq); swaps(&stuff->length); REQUEST_SIZE_MATCH(xXF86VidModeGetPermissionsReq); swaps(&stuff->screen); return ProcXF86VidModeGetPermissions(client); -} static int - SProcXF86VidModeDispatch(ClientPtr client) { +} + +static int +SProcXF86VidModeDispatch(ClientPtr client) +{ REQUEST(xReq); switch (stuff->data) { case X_XF86VidModeQueryVersion: return SProcXF86VidModeQueryVersion(client); - case X_XF86VidModeGetModeLine:return - SProcXF86VidModeGetModeLine(client); - case X_XF86VidModeGetMonitor:return SProcXF86VidModeGetMonitor(client); - case X_XF86VidModeGetAllModeLines:return - SProcXF86VidModeGetAllModeLines(client); - case X_XF86VidModeGetViewPort:return - SProcXF86VidModeGetViewPort(client); - case X_XF86VidModeValidateModeLine:return - SProcXF86VidModeValidateModeLine(client); - case X_XF86VidModeGetDotClocks:return - SProcXF86VidModeGetDotClocks(client); - case X_XF86VidModeSetClientVersion:return - SProcXF86VidModeSetClientVersion(client); - case X_XF86VidModeGetGamma:return SProcXF86VidModeGetGamma(client); - case X_XF86VidModeGetGammaRamp:return - SProcXF86VidModeGetGammaRamp(client); - case X_XF86VidModeGetGammaRampSize:return - SProcXF86VidModeGetGammaRampSize(client); - case X_XF86VidModeGetPermissions:return - SProcXF86VidModeGetPermissions(client); - default:if (!xf86GetVidModeEnabled()) + case X_XF86VidModeGetModeLine: + return SProcXF86VidModeGetModeLine(client); + case X_XF86VidModeGetMonitor: + return SProcXF86VidModeGetMonitor(client); + case X_XF86VidModeGetAllModeLines: + return SProcXF86VidModeGetAllModeLines(client); + case X_XF86VidModeGetViewPort: + return SProcXF86VidModeGetViewPort(client); + case X_XF86VidModeValidateModeLine: + return SProcXF86VidModeValidateModeLine(client); + case X_XF86VidModeGetDotClocks: + return SProcXF86VidModeGetDotClocks(client); + case X_XF86VidModeSetClientVersion: + return SProcXF86VidModeSetClientVersion(client); + case X_XF86VidModeGetGamma: + return SProcXF86VidModeGetGamma(client); + case X_XF86VidModeGetGammaRamp: + return SProcXF86VidModeGetGammaRamp(client); + case X_XF86VidModeGetGammaRampSize: + return SProcXF86VidModeGetGammaRampSize(client); + case X_XF86VidModeGetPermissions: + return SProcXF86VidModeGetPermissions(client); + default: + if (!xf86GetVidModeEnabled()) return VidModeErrorBase + XF86VidModeExtensionDisabled; if (xf86GetVidModeAllowNonLocal() || LocalClient(client)) { switch (stuff->data) { case X_XF86VidModeAddModeLine: return SProcXF86VidModeAddModeLine(client); - case X_XF86VidModeDeleteModeLine:return - SProcXF86VidModeDeleteModeLine(client); - case X_XF86VidModeModModeLine:return - SProcXF86VidModeModModeLine(client); - case X_XF86VidModeSwitchMode:return - SProcXF86VidModeSwitchMode(client); - case X_XF86VidModeSwitchToMode:return - SProcXF86VidModeSwitchToMode(client); - case X_XF86VidModeLockModeSwitch:return - SProcXF86VidModeLockModeSwitch(client); - case X_XF86VidModeSetViewPort:return - SProcXF86VidModeSetViewPort(client); - case X_XF86VidModeSetGamma:return - SProcXF86VidModeSetGamma(client); - case X_XF86VidModeSetGammaRamp:return - SProcXF86VidModeSetGammaRamp(client); - default:return BadRequest; - }} + case X_XF86VidModeDeleteModeLine: + return SProcXF86VidModeDeleteModeLine(client); + case X_XF86VidModeModModeLine: + return SProcXF86VidModeModModeLine(client); + case X_XF86VidModeSwitchMode: + return SProcXF86VidModeSwitchMode(client); + case X_XF86VidModeSwitchToMode: + return SProcXF86VidModeSwitchToMode(client); + case X_XF86VidModeLockModeSwitch: + return SProcXF86VidModeLockModeSwitch(client); + case X_XF86VidModeSetViewPort: + return SProcXF86VidModeSetViewPort(client); + case X_XF86VidModeSetGamma: + return SProcXF86VidModeSetGamma(client); + case X_XF86VidModeSetGammaRamp: + return SProcXF86VidModeSetGammaRamp(client); + default: + return BadRequest; + } + } else - return VidModeErrorBase + XF86VidModeClientNotLocal; + return VidModeErrorBase + XF86VidModeClientNotLocal; } } void - XFree86VidModeExtensionInit(void) { +XFree86VidModeExtensionInit(void) +{ ExtensionEntry *extEntry; ScreenPtr pScreen; int i; Bool enabled = FALSE; - DEBUG_P("XFree86VidModeExtensionInit"); + DEBUG_P("XFree86VidModeExtensionInit"); if (!dixRegisterPrivateKey(&VidModeClientPrivateKeyRec, PRIVATE_CLIENT, 0)) - return; + return; #ifdef XF86VIDMODE_EVENTS if (!dixRegisterPrivateKey(&ScreenPrivateKeyRec, PRIVATE_SCREEN, 0)) - return; + return; #endif #ifdef XF86VIDMODE_EVENTS - EventType = CreateNewResourceType(XF86VidModeFreeEvents, "VidModeEvent"); + EventType = CreateNewResourceType(XF86VidModeFreeEvents, "VidModeEvent"); #endif for (i = 0; i < screenInfo.numScreens; i++) { @@ -1990,8 +2124,8 @@ void enabled = TRUE; } /* This means that the DDX doesn't want the vidmode extension enabled */ - if (!enabled) - return; + if (!enabled) + return; if ( #ifdef XF86VIDMODE_EVENTS diff --git a/include/input.h b/include/input.h index d891fe5db..991d64813 100644 --- a/include/input.h +++ b/include/input.h @@ -563,8 +563,8 @@ extern void TouchAddListener(TouchPointInfoPtr ti, XID resource, extern Bool TouchRemoveListener(TouchPointInfoPtr ti, XID resource); extern void TouchSetupListeners(DeviceIntPtr dev, TouchPointInfoPtr ti, InternalEvent *ev); -extern Bool TouchEnsureSprite(DeviceIntPtr sourcedev, TouchPointInfoPtr ti, - InternalEvent *ev); +extern Bool TouchBuildSprite(DeviceIntPtr sourcedev, TouchPointInfoPtr ti, + InternalEvent *ev); extern Bool TouchBuildDependentSpriteTrace(DeviceIntPtr dev, SpritePtr sprite); extern int TouchConvertToPointerEvent(const InternalEvent *ev, InternalEvent *motion, @@ -572,6 +572,8 @@ extern int TouchConvertToPointerEvent(const InternalEvent *ev, extern int TouchGetPointerEventType(const InternalEvent *ev); extern void TouchRemovePointerGrab(DeviceIntPtr dev); extern void TouchListenerGone(XID resource); +extern int TouchListenerAcceptReject(DeviceIntPtr dev, TouchPointInfoPtr ti, + int listener, int mode); extern int TouchAcceptReject(ClientPtr client, DeviceIntPtr dev, int mode, uint32_t touchid, Window grab_window, XID *error); |