Merge remote-tracking branch 'whot/for-keith'
This commit is contained in:
commit
d4096abb59
|
@ -679,12 +679,19 @@ GetXTestDevice(DeviceIntPtr master)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
XTestExtensionTearDown(ExtensionEntry *e)
|
||||
{
|
||||
FreeEventList(xtest_evlist, GetMaximumEventsNum());
|
||||
xtest_evlist = NULL;
|
||||
}
|
||||
|
||||
void
|
||||
XTestExtensionInit(INITARGS)
|
||||
{
|
||||
AddExtension(XTestExtensionName, 0, 0,
|
||||
ProcXTestDispatch, SProcXTestDispatch,
|
||||
NULL, StandardMinorOpcode);
|
||||
XTestExtensionTearDown, StandardMinorOpcode);
|
||||
|
||||
xtest_evlist = InitEventList(GetMaximumEventsNum());
|
||||
}
|
||||
|
|
|
@ -386,8 +386,9 @@ BlockHandler(pointer pTimeout, pointer pReadmask)
|
|||
screenInfo.screens[i]->blockData,
|
||||
pTimeout, pReadmask);
|
||||
for (i = 0; i < numHandlers; i++)
|
||||
(*handlers[i].BlockHandler) (handlers[i].blockData,
|
||||
pTimeout, pReadmask);
|
||||
if (!handlers[i].deleted)
|
||||
(*handlers[i].BlockHandler) (handlers[i].blockData,
|
||||
pTimeout, pReadmask);
|
||||
if (handlerDeleted)
|
||||
{
|
||||
for (i = 0; i < numHandlers;)
|
||||
|
@ -416,8 +417,9 @@ WakeupHandler(int result, pointer pReadmask)
|
|||
|
||||
++inHandler;
|
||||
for (i = numHandlers - 1; i >= 0; i--)
|
||||
(*handlers[i].WakeupHandler) (handlers[i].blockData,
|
||||
result, pReadmask);
|
||||
if (!handlers[i].deleted)
|
||||
(*handlers[i].WakeupHandler) (handlers[i].blockData,
|
||||
result, pReadmask);
|
||||
for (i = 0; i < screenInfo.numScreens; i++)
|
||||
(* screenInfo.screens[i]->WakeupHandler)(i,
|
||||
screenInfo.screens[i]->wakeupData,
|
||||
|
|
|
@ -320,6 +320,8 @@ updateSlaveDeviceCoords(DeviceIntPtr master, DeviceIntPtr pDev)
|
|||
* position of the pointer */
|
||||
pDev->last.valuators[0] = master->last.valuators[0];
|
||||
pDev->last.valuators[1] = master->last.valuators[1];
|
||||
pDev->last.remainder[0] = master->last.remainder[0];
|
||||
pDev->last.remainder[1] = master->last.remainder[1];
|
||||
|
||||
if (!pDev->valuator)
|
||||
return;
|
||||
|
@ -339,14 +341,19 @@ updateSlaveDeviceCoords(DeviceIntPtr master, DeviceIntPtr pDev)
|
|||
if ((lastSlave = master->last.slave) && lastSlave->valuator) {
|
||||
for (i = 2; i < pDev->valuator->numAxes; i++) {
|
||||
if (i >= lastSlave->valuator->numAxes)
|
||||
{
|
||||
pDev->last.valuators[i] = 0;
|
||||
pDev->last.remainder[i] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
pDev->last.valuators[i] =
|
||||
rescaleValuatorAxis(pDev->last.valuators[i],
|
||||
pDev->last.remainder[i],
|
||||
&pDev->last.remainder[i],
|
||||
lastSlave->valuator->axes + i,
|
||||
pDev->valuator->axes + i, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1164,14 +1171,17 @@ GetPointerEvents(InternalEvent *events, DeviceIntPtr pDev, int type, int buttons
|
|||
|
||||
events = UpdateFromMaster(events, pDev, DEVCHANGE_POINTER_EVENT, &num_events);
|
||||
|
||||
raw = &events->raw_event;
|
||||
events++;
|
||||
num_events++;
|
||||
|
||||
valuator_mask_copy(&mask, mask_in);
|
||||
|
||||
init_raw(pDev, raw, ms, type, buttons);
|
||||
set_raw_valuators(raw, &mask, raw->valuators.data_raw);
|
||||
if ((flags & POINTER_NORAW) == 0)
|
||||
{
|
||||
raw = &events->raw_event;
|
||||
events++;
|
||||
num_events++;
|
||||
|
||||
init_raw(pDev, raw, ms, type, buttons);
|
||||
set_raw_valuators(raw, &mask, raw->valuators.data_raw);
|
||||
}
|
||||
|
||||
if (flags & POINTER_ABSOLUTE)
|
||||
{
|
||||
|
@ -1210,7 +1220,8 @@ GetPointerEvents(InternalEvent *events, DeviceIntPtr pDev, int type, int buttons
|
|||
moveRelative(pDev, &x, &y, &mask);
|
||||
}
|
||||
|
||||
set_raw_valuators(raw, &mask, raw->valuators.data);
|
||||
if ((flags & POINTER_NORAW) == 0)
|
||||
set_raw_valuators(raw, &mask, raw->valuators.data);
|
||||
|
||||
positionSprite(pDev, (flags & POINTER_ABSOLUTE) ? Absolute : Relative,
|
||||
&x, &y, x_frac, y_frac, scr, &cx, &cy, &cx_frac, &cy_frac);
|
||||
|
|
112
dix/grabs.c
112
dix/grabs.c
|
@ -68,6 +68,118 @@ SOFTWARE.
|
|||
#define BITCLEAR(buf, i) MASKWORD(buf, i) &= ~BITMASK(i)
|
||||
#define GETBIT(buf, i) (MASKWORD(buf, i) & BITMASK(i))
|
||||
|
||||
void
|
||||
PrintDeviceGrabInfo(DeviceIntPtr dev)
|
||||
{
|
||||
ClientPtr client;
|
||||
LocalClientCredRec *lcc;
|
||||
int i, j;
|
||||
GrabInfoPtr devGrab = &dev->deviceGrab;
|
||||
GrabPtr grab = devGrab->grab;
|
||||
|
||||
ErrorF("Active grab 0x%lx (%s) on device '%s' (%d):",
|
||||
(unsigned long) grab->resource,
|
||||
(grab->grabtype == GRABTYPE_XI2) ? "xi2" :
|
||||
((grab->grabtype == GRABTYPE_CORE) ? "core" : "xi1"),
|
||||
dev->name, dev->id);
|
||||
|
||||
client = clients[CLIENT_ID(grab->resource)];
|
||||
if (client && GetLocalClientCreds(client, &lcc) != -1)
|
||||
{
|
||||
ErrorF(" client pid %ld uid %ld gid %ld\n",
|
||||
(lcc->fieldsSet & LCC_PID_SET) ? (long) lcc->pid : 0,
|
||||
(lcc->fieldsSet & LCC_UID_SET) ? (long) lcc->euid : 0,
|
||||
(lcc->fieldsSet & LCC_GID_SET) ? (long) lcc->egid : 0);
|
||||
FreeLocalClientCreds(lcc);
|
||||
}
|
||||
else
|
||||
{
|
||||
ErrorF(" (no client information available)\n");
|
||||
}
|
||||
|
||||
/* XXX is this even correct? */
|
||||
if (devGrab->sync.other)
|
||||
ErrorF(" grab ID 0x%lx from paired device\n",
|
||||
(unsigned long) devGrab->sync.other->resource);
|
||||
|
||||
ErrorF(" at %ld (from %s grab)%s (device %s, state %d)\n",
|
||||
(unsigned long) devGrab->grabTime.milliseconds,
|
||||
devGrab->fromPassiveGrab ? "passive" : "active",
|
||||
devGrab->implicitGrab ? " (implicit)" : "",
|
||||
devGrab->sync.frozen ? "frozen" : "thawed",
|
||||
devGrab->sync.state);
|
||||
|
||||
if (grab->grabtype == GRABTYPE_CORE)
|
||||
{
|
||||
ErrorF(" core event mask 0x%lx\n",
|
||||
(unsigned long) grab->eventMask);
|
||||
}
|
||||
else if (grab->grabtype == GRABTYPE_XI)
|
||||
{
|
||||
ErrorF(" xi1 event mask 0x%lx\n",
|
||||
devGrab->implicitGrab ? (unsigned long) grab->deviceMask :
|
||||
(unsigned long) grab->eventMask);
|
||||
}
|
||||
else if (grab->grabtype == GRABTYPE_XI2)
|
||||
{
|
||||
for (i = 0; i < EMASKSIZE; i++)
|
||||
{
|
||||
int print;
|
||||
print = 0;
|
||||
for (j = 0; j < XI2MASKSIZE; j++)
|
||||
{
|
||||
if (grab->xi2mask[i][j])
|
||||
{
|
||||
print = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!print)
|
||||
continue;
|
||||
ErrorF(" xi2 event mask for device %d: 0x", dev->id);
|
||||
for (j = 0; j < XI2MASKSIZE; j++)
|
||||
ErrorF("%x", grab->xi2mask[i][j]);
|
||||
ErrorF("\n");
|
||||
}
|
||||
}
|
||||
|
||||
if (devGrab->fromPassiveGrab)
|
||||
{
|
||||
ErrorF(" passive grab type %d, detail 0x%x, "
|
||||
"activating key %d\n", grab->type, grab->detail.exact,
|
||||
devGrab->activatingKey);
|
||||
}
|
||||
|
||||
ErrorF(" owner-events %s, kb %d ptr %d, confine %lx, cursor 0x%lx\n",
|
||||
grab->ownerEvents ? "true" : "false",
|
||||
grab->keyboardMode, grab->pointerMode,
|
||||
grab->confineTo ? (unsigned long) grab->confineTo->drawable.id : 0,
|
||||
grab->cursor ? (unsigned long) grab->cursor->id : 0);
|
||||
}
|
||||
|
||||
void
|
||||
UngrabAllDevices(Bool kill_client)
|
||||
{
|
||||
DeviceIntPtr dev;
|
||||
ClientPtr client;
|
||||
|
||||
ErrorF("Ungrabbing all devices%s; grabs listed below:\n",
|
||||
kill_client ? " and killing their owners" : "");
|
||||
|
||||
for (dev = inputInfo.devices; dev; dev = dev->next)
|
||||
{
|
||||
if (!dev->deviceGrab.grab)
|
||||
continue;
|
||||
PrintDeviceGrabInfo(dev);
|
||||
client = clients[CLIENT_ID(dev->deviceGrab.grab->resource)];
|
||||
if (!client || client->clientGone)
|
||||
dev->deviceGrab.DeactivateGrab(dev);
|
||||
CloseDownClient(client);
|
||||
}
|
||||
|
||||
ErrorF("End list of ungrabbed devices\n");
|
||||
}
|
||||
|
||||
GrabPtr
|
||||
CreateGrab(
|
||||
int client,
|
||||
|
|
141
dix/window.c
141
dix/window.c
|
@ -108,6 +108,7 @@ Equipment Corporation.
|
|||
#include "regionstr.h"
|
||||
#include "validate.h"
|
||||
#include "windowstr.h"
|
||||
#include "propertyst.h"
|
||||
#include "input.h"
|
||||
#include "inputstr.h"
|
||||
#include "resource.h"
|
||||
|
@ -124,10 +125,13 @@ Equipment Corporation.
|
|||
#include "dixevents.h"
|
||||
#include "globals.h"
|
||||
#include "mi.h" /* miPaintWindow */
|
||||
#include "compint.h"
|
||||
|
||||
#include "privates.h"
|
||||
#include "xace.h"
|
||||
|
||||
#include <X11/Xatom.h> /* must come after server includes */
|
||||
|
||||
/******
|
||||
* Window stuff for server
|
||||
*
|
||||
|
@ -176,46 +180,129 @@ static Bool TileScreenSaver(ScreenPtr pScreen, int kind);
|
|||
|
||||
#define SubStrSend(pWin,pParent) (StrSend(pWin) || SubSend(pParent))
|
||||
|
||||
#ifdef DEBUG
|
||||
/******
|
||||
* PrintWindowTree
|
||||
* For debugging only
|
||||
******/
|
||||
static const char *overlay_win_name = "<composite overlay>";
|
||||
|
||||
static void
|
||||
PrintChildren(WindowPtr p1, int indent)
|
||||
static const char *
|
||||
get_window_name(WindowPtr pWin)
|
||||
{
|
||||
WindowPtr p2;
|
||||
int i;
|
||||
#define WINDOW_NAME_BUF_LEN 512
|
||||
PropertyPtr prop;
|
||||
CompScreenPtr comp_screen = GetCompScreen(pWin->drawable.pScreen);
|
||||
static char buf[WINDOW_NAME_BUF_LEN];
|
||||
int len;
|
||||
|
||||
while (p1)
|
||||
if (comp_screen && pWin == comp_screen->pOverlayWin)
|
||||
return overlay_win_name;
|
||||
|
||||
for (prop = wUserProps(pWin); prop; prop = prop->next)
|
||||
{
|
||||
p2 = p1->firstChild;
|
||||
ErrorF("[dix] ");
|
||||
for (i=0; i<indent; i++) ErrorF(" ");
|
||||
ErrorF("%lx\n", p1->drawable.id);
|
||||
RegionPrint(&p1->clipList);
|
||||
PrintChildren(p2, indent+4);
|
||||
p1 = p1->nextSib;
|
||||
if (prop->propertyName == XA_WM_NAME && prop->type == XA_STRING &&
|
||||
prop->data)
|
||||
{
|
||||
len = min(prop->size, WINDOW_NAME_BUF_LEN - 1);
|
||||
memcpy(buf, prop->data, len);
|
||||
buf[len] = '\0';
|
||||
return buf;
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
#undef WINDOW_NAME_BUF_LEN
|
||||
}
|
||||
|
||||
static void
|
||||
static void log_window_info(WindowPtr pWin, int depth)
|
||||
{
|
||||
int i;
|
||||
const char *win_name, *visibility;
|
||||
BoxPtr rects;
|
||||
ScreenPtr pScreen = pWin->drawable.pScreen;
|
||||
|
||||
for (i = 0; i < (depth << 2); i++)
|
||||
ErrorF(" ");
|
||||
|
||||
win_name = get_window_name(pWin);
|
||||
ErrorF("win 0x%.8x (%s), [%d, %d] to [%d, %d]",
|
||||
pWin->drawable.id,
|
||||
win_name ? win_name : "no name",
|
||||
pWin->drawable.x, pWin->drawable.y,
|
||||
pWin->drawable.x + pWin->drawable.width,
|
||||
pWin->drawable.y + pWin->drawable.height);
|
||||
|
||||
if (pWin->overrideRedirect)
|
||||
ErrorF(" (override redirect)");
|
||||
if (pWin->redirectDraw)
|
||||
ErrorF(" (%s compositing: pixmap %x)",
|
||||
(pWin->redirectDraw == RedirectDrawAutomatic) ?
|
||||
"automatic" : "manual",
|
||||
pScreen->GetWindowPixmap(pWin)->drawable.id);
|
||||
|
||||
switch (pWin->visibility)
|
||||
{
|
||||
case VisibilityUnobscured:
|
||||
visibility = "unobscured";
|
||||
break;
|
||||
case VisibilityPartiallyObscured:
|
||||
visibility = "partially obscured";
|
||||
break;
|
||||
case VisibilityFullyObscured:
|
||||
visibility = "fully obscured";
|
||||
break;
|
||||
case VisibilityNotViewable:
|
||||
visibility = "unviewable";
|
||||
break;
|
||||
}
|
||||
ErrorF(", %s", visibility);
|
||||
|
||||
if (REGION_NOTEMPTY(pScreen, &pWin->clipList))
|
||||
{
|
||||
ErrorF(", clip list:");
|
||||
rects = REGION_RECTS(&pWin->clipList);
|
||||
for (i = 0; i < REGION_NUM_RECTS(&pWin->clipList); i++)
|
||||
ErrorF(" [(%d, %d) to (%d, %d)]",
|
||||
rects[i].x1, rects[i].y1,
|
||||
rects[i].x2, rects[i].y2);
|
||||
ErrorF("; extents [(%d, %d) to (%d, %d)]",
|
||||
pWin->clipList.extents.x1, pWin->clipList.extents.y1,
|
||||
pWin->clipList.extents.x2, pWin->clipList.extents.y2);
|
||||
}
|
||||
|
||||
ErrorF("\n");
|
||||
}
|
||||
|
||||
void
|
||||
PrintWindowTree(void)
|
||||
{
|
||||
int i;
|
||||
WindowPtr pWin, p1;
|
||||
int scrnum, depth;
|
||||
ScreenPtr pScreen;
|
||||
WindowPtr pWin;
|
||||
|
||||
for (i=0; i<screenInfo.numScreens; i++)
|
||||
for (scrnum = 0; scrnum < screenInfo.numScreens; scrnum++)
|
||||
{
|
||||
ErrorF("[dix] WINDOW %d\n", i);
|
||||
pWin = screenInfo.screens[i]->root;
|
||||
RegionPrint(&pWin->clipList);
|
||||
p1 = pWin->firstChild;
|
||||
PrintChildren(p1, 4);
|
||||
pScreen = screenInfo.screens[scrnum];
|
||||
ErrorF("[dix] Dumping windows for screen %d (pixmap %x):\n", scrnum,
|
||||
pScreen->GetScreenPixmap(pScreen)->drawable.id);
|
||||
pWin = pScreen->root;
|
||||
depth = 1;
|
||||
while (pWin)
|
||||
{
|
||||
log_window_info(pWin, depth);
|
||||
if (pWin->firstChild)
|
||||
{
|
||||
pWin = pWin->firstChild;
|
||||
depth++;
|
||||
continue;
|
||||
}
|
||||
while (pWin && !pWin->nextSib)
|
||||
{
|
||||
pWin = pWin->parent;
|
||||
depth--;
|
||||
}
|
||||
if (!pWin)
|
||||
break;
|
||||
pWin = pWin->nextSib;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
int
|
||||
TraverseTree(WindowPtr pWin, VisitWindowProcPtr func, pointer data)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* Copyright © 2001 Keith Packard
|
||||
* Copyright © 2001 Keith Packard
|
||||
*
|
||||
* Partly based on code that is Copyright © The XFree86 Project Inc.
|
||||
* Partly based on code that is Copyright © The XFree86 Project Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* Copyright © 2001 Keith Packard
|
||||
* Copyright © 2001 Keith Packard
|
||||
*
|
||||
* Partly based on code that is Copyright © The XFree86 Project Inc.
|
||||
* Partly based on code that is Copyright © The XFree86 Project Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
|
@ -23,7 +23,7 @@
|
|||
*
|
||||
* Authors:
|
||||
* Eric Anholt <eric@anholt.net>
|
||||
* Michel Dänzer <michel@tungstengraphics.com>
|
||||
* Michel Dänzer <michel@tungstengraphics.com>
|
||||
*
|
||||
*/
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright © 2009 Maarten Maathuis
|
||||
* Copyright © 2009 Maarten Maathuis
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright © 2009 Maarten Maathuis
|
||||
* Copyright © 2009 Maarten Maathuis
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright © 2006 Intel Corporation
|
||||
* Copyright © 2006 Intel Corporation
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
|
@ -22,7 +22,7 @@
|
|||
*
|
||||
* Authors:
|
||||
* Eric Anholt <eric@anholt.net>
|
||||
* Michel Dänzer <michel@tungstengraphics.com>
|
||||
* Michel Dänzer <michel@tungstengraphics.com>
|
||||
*
|
||||
*/
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright © 2009 Maarten Maathuis
|
||||
* Copyright © 2009 Maarten Maathuis
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright © 2009 Maarten Maathuis
|
||||
* Copyright © 2009 Maarten Maathuis
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
*
|
||||
* Copyright © 1999 Keith Packard
|
||||
* Copyright © 1999 Keith Packard
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
|
|
|
@ -77,6 +77,7 @@ void InitInput(int argc, char **argv)
|
|||
|
||||
void CloseInput(void)
|
||||
{
|
||||
mieqFini();
|
||||
}
|
||||
|
||||
/** Called from dix/dispatch.c in Dispatch() whenever input events
|
||||
|
|
|
@ -546,9 +546,6 @@ static void dmxProcessInputEvents(DMXInputInfo *dmxInput)
|
|||
return;
|
||||
for (i = 0; i < dmxInput->numDevs; i += dmxInput->devs[i]->binding)
|
||||
if (dmxInput->devs[i]->process_input) {
|
||||
#if 11 /*BP*/
|
||||
miPointerUpdateSprite(dmxInput->devs[i]->pDevice);
|
||||
#endif
|
||||
dmxInput->devs[i]->process_input(dmxInput->devs[i]->private);
|
||||
}
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* Xephyr - A kdrive X server thats runs in a host X window.
|
||||
* Authored by Matthew Allum <mallum@openedhand.com>
|
||||
*
|
||||
* Copyright © 2004 Nokia
|
||||
* Copyright © 2004 Nokia
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* Xephyr - A kdrive X server thats runs in a host X window.
|
||||
* Authored by Matthew Allum <mallum@o-hand.com>
|
||||
*
|
||||
* Copyright © 2004 Nokia
|
||||
* Copyright © 2004 Nokia
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright © 2006 Intel Corporation
|
||||
* Copyright © 2006 Intel Corporation
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* Xephyr - A kdrive X server thats runs in a host X window.
|
||||
* Authored by Matthew Allum <mallum@o-hand.com>
|
||||
*
|
||||
* Copyright © 2004 Nokia
|
||||
* Copyright © 2004 Nokia
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
|
@ -97,6 +97,7 @@ InitInput (int argc, char **argv)
|
|||
void
|
||||
CloseInput (void)
|
||||
{
|
||||
KdCloseInput();
|
||||
}
|
||||
|
||||
#ifdef DDXBEFORERESET
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* Xephyr - A kdrive X server thats runs in a host X window.
|
||||
* Authored by Matthew Allum <mallum@o-hand.com>
|
||||
*
|
||||
* Copyright © 2004 Nokia
|
||||
* Copyright © 2004 Nokia
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* Xephyr - A kdrive X server thats runs in a host X window.
|
||||
* Authored by Matthew Allum <mallum@o-hand.com>
|
||||
*
|
||||
* Copyright © 2004 Nokia
|
||||
* Copyright © 2004 Nokia
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* Xephyr - A kdrive X server thats runs in a host X window.
|
||||
* Authored by Matthew Allum <mallum@o-hand.com>
|
||||
*
|
||||
* Copyright © 2004 Nokia
|
||||
* Copyright © 2004 Nokia
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
|
|
|
@ -61,6 +61,7 @@ InitInput (int argc, char **argv)
|
|||
void
|
||||
CloseInput (void)
|
||||
{
|
||||
KdCloseInput ();
|
||||
}
|
||||
|
||||
#ifdef DDXBEFORERESET
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright © 1999 Keith Packard
|
||||
* Copyright © 1999 Keith Packard
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright © 1999 Keith Packard
|
||||
* Copyright © 1999 Keith Packard
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright © 1999 Keith Packard
|
||||
* Copyright © 1999 Keith Packard
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright © 1999 Keith Packard
|
||||
* Copyright © 1999 Keith Packard
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
|
@ -47,6 +47,7 @@ InitInput (int argc, char **argv)
|
|||
void
|
||||
CloseInput (void)
|
||||
{
|
||||
KdCloseInput ();
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
/*
|
||||
* Copyright © 1999 Keith Packard
|
||||
* XKB integration © 2006 Nokia Corporation, author: Tomas Frydrych <tf@o-hand.com>
|
||||
* Copyright © 1999 Keith Packard
|
||||
* XKB integration © 2006 Nokia Corporation, author: Tomas Frydrych <tf@o-hand.com>
|
||||
*
|
||||
* LinuxKeyboardRead() XKB code based on xf86KbdLnx.c:
|
||||
* Copyright © 1990,91 by Thomas Roell, Dinkelscherben, Germany.
|
||||
* Copyright © 1994-2001 by The XFree86 Project, Inc.
|
||||
* Copyright © 1990,91 by Thomas Roell, Dinkelscherben, Germany.
|
||||
* Copyright © 1994-2001 by The XFree86 Project, Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright © 1999 Keith Packard
|
||||
* Copyright © 1999 Keith Packard
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright © 2001 Keith Packard
|
||||
* Copyright © 2001 Keith Packard
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright © 1999 Keith Packard
|
||||
* Copyright © 1999 Keith Packard
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
|
|
|
@ -4,11 +4,11 @@
|
|||
* Derived from ts.c by Keith Packard
|
||||
* Derived from ps2.c by Jim Gettys
|
||||
*
|
||||
* Copyright © 1999 Keith Packard
|
||||
* Copyright © 2000 Compaq Computer Corporation
|
||||
* Copyright © 2002 MontaVista Software Inc.
|
||||
* Copyright © 2005 OpenedHand Ltd.
|
||||
* Copyright © 2006 Nokia Corporation
|
||||
* Copyright © 1999 Keith Packard
|
||||
* Copyright © 2000 Compaq Computer Corporation
|
||||
* Copyright © 2002 MontaVista Software Inc.
|
||||
* Copyright © 2005 OpenedHand Ltd.
|
||||
* Copyright © 2006 Nokia Corporation
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright © 1999 Keith Packard
|
||||
* Copyright © 1999 Keith Packard
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright © 1999 Keith Packard
|
||||
* Copyright © 1999 Keith Packard
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
|
@ -500,6 +500,8 @@ KdScreenInfoDispose (KdScreenInfo *si);
|
|||
/* kinput.c */
|
||||
void
|
||||
KdInitInput(void);
|
||||
void
|
||||
KdCloseInput(void);
|
||||
|
||||
void
|
||||
KdAddPointerDriver(KdPointerDriver *);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright © 1999 Keith Packard
|
||||
* Copyright © 1999 Keith Packard
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* Copyright © 1999 Keith Packard
|
||||
* Copyright © 2006 Nokia Corporation
|
||||
* Copyright © 1999 Keith Packard
|
||||
* Copyright © 2006 Nokia Corporation
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
|
@ -1305,6 +1305,12 @@ KdInitInput (void)
|
|||
mieqInit();
|
||||
}
|
||||
|
||||
void
|
||||
KdCloseInput (void)
|
||||
{
|
||||
mieqFini();
|
||||
}
|
||||
|
||||
/*
|
||||
* Middle button emulation state machine
|
||||
*
|
||||
|
@ -2159,7 +2165,6 @@ void
|
|||
ProcessInputEvents (void)
|
||||
{
|
||||
mieqProcessInputEvents();
|
||||
miPointerUpdateSprite(inputInfo.pointer);
|
||||
if (kdSwitchPending)
|
||||
KdProcessSwitch ();
|
||||
KdCheckLock ();
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright © 1999 Keith Packard
|
||||
* Copyright © 1999 Keith Packard
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
|
|
|
@ -148,4 +148,5 @@ InitInput(int argc, char *argv[])
|
|||
void
|
||||
CloseInput (void)
|
||||
{
|
||||
mieqFini();
|
||||
}
|
||||
|
|
|
@ -825,6 +825,7 @@ void
|
|||
CloseInput (void)
|
||||
{
|
||||
config_fini();
|
||||
mieqFini();
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
#define XKBSRV_NEED_FILE_FUNCS
|
||||
#include <xkbsrv.h>
|
||||
|
||||
#include "dixgrabs.h"
|
||||
#include "os.h"
|
||||
#include "xf86.h"
|
||||
|
||||
|
@ -29,6 +30,20 @@ XkbDDXPrivate(DeviceIntPtr dev,KeyCode key,XkbAction *act)
|
|||
xf86ProcessActionEvent(ACTION_PREV_MODE, NULL);
|
||||
else if (strcasecmp(msgbuf, "+vmode")==0)
|
||||
xf86ProcessActionEvent(ACTION_NEXT_MODE, NULL);
|
||||
else if (strcasecmp(msgbuf, "prgrbs")==0) {
|
||||
DeviceIntPtr tmp;
|
||||
xf86Msg(X_INFO, "Printing all currently active device grabs:\n");
|
||||
for (tmp = inputInfo.devices; tmp; tmp = tmp->next)
|
||||
if (tmp->deviceGrab.grab)
|
||||
PrintDeviceGrabInfo(tmp);
|
||||
xf86Msg(X_INFO, "End list of active device grabs\n");
|
||||
}
|
||||
else if (strcasecmp(msgbuf, "ungrab")==0)
|
||||
UngrabAllDevices(FALSE);
|
||||
else if (strcasecmp(msgbuf, "clsgrb")==0)
|
||||
UngrabAllDevices(TRUE);
|
||||
else if (strcasecmp(msgbuf, "prwins")==0)
|
||||
PrintWindowTree();
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -1185,6 +1185,7 @@ void
|
|||
DRI2CloseScreen(ScreenPtr pScreen)
|
||||
{
|
||||
DRI2ScreenPtr ds = DRI2GetScreen(pScreen);
|
||||
pScreen->ConfigNotify = ds->ConfigNotify;
|
||||
|
||||
free(ds->driverNames);
|
||||
free(ds);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright © 2006 Intel Corporation
|
||||
* Copyright © 2006 Intel Corporation
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright © 2006 Intel Corporation
|
||||
* Copyright © 2006 Intel Corporation
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
|
|
|
@ -152,7 +152,7 @@ xf86CVTMode(int HDisplay, int VDisplay, float VRefresh, Bool Reduced,
|
|||
|
||||
if (!Reduced) { /* simplified GTF calculation */
|
||||
|
||||
/* 4) Minimum time of vertical sync + back porch interval (µs)
|
||||
/* 4) Minimum time of vertical sync + back porch interval (µs)
|
||||
* default 550.0 */
|
||||
#define CVT_MIN_VSYNC_BP 550.0
|
||||
|
||||
|
@ -223,7 +223,7 @@ xf86CVTMode(int HDisplay, int VDisplay, float VRefresh, Bool Reduced,
|
|||
Mode->VSyncEnd = Mode->VSyncStart + VSync;
|
||||
|
||||
} else { /* Reduced blanking */
|
||||
/* Minimum vertical blanking interval time (µs) - default 460 */
|
||||
/* Minimum vertical blanking interval time (µs) - default 460 */
|
||||
#define CVT_RB_MIN_VBLANK 460.0
|
||||
|
||||
/* Fixed number of clocks for horizontal sync */
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
*
|
||||
* This version is for Solaris.
|
||||
*
|
||||
* Copyright © 2000 VA Linux Systems, Inc.
|
||||
* Copyright © 2001 The XFree86 Project, Inc.
|
||||
* Copyright © 2000 VA Linux Systems, Inc.
|
||||
* Copyright © 2001 The XFree86 Project, Inc.
|
||||
*/
|
||||
/* Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
|
||||
*
|
||||
|
|
|
@ -108,6 +108,7 @@ InitInput(int argc, char *argv[])
|
|||
void
|
||||
CloseInput(void)
|
||||
{
|
||||
mieqFini();
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -505,6 +505,10 @@ void InitInput( int argc, char **argv )
|
|||
QuartzInitInput(argc, argv);
|
||||
}
|
||||
|
||||
void CloseInput(void)
|
||||
{
|
||||
DarwinEQFini();
|
||||
}
|
||||
|
||||
/*
|
||||
* DarwinAdjustScreenOrigins
|
||||
|
|
|
@ -371,6 +371,10 @@ Bool DarwinEQInit(void) {
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
Bool DarwinEQFini(void) {
|
||||
mieqFini();
|
||||
}
|
||||
|
||||
/*
|
||||
* ProcessInputEvents
|
||||
* Read and process events from the event queue until it is empty.
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#define XQUARTZ_VALUATOR_LIMIT (1 << 16)
|
||||
|
||||
Bool DarwinEQInit(void);
|
||||
Bool DarwinEQFini(void);
|
||||
void DarwinEQEnqueue(const xEventPtr e);
|
||||
void DarwinEQPointerPost(DeviceIntPtr pDev, xEventPtr e);
|
||||
void DarwinEQSwitchScreen(ScreenPtr pScreen, Bool fromDIX);
|
||||
|
|
|
@ -149,8 +149,3 @@ DeleteInputDeviceRequest(DeviceIntPtr dev)
|
|||
DEBUG_LOG("DeleteInputDeviceRequest(%p)\n", dev);
|
||||
}
|
||||
|
||||
void
|
||||
CloseInput (void)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
@ -156,4 +156,5 @@ InitInput (int argc, char *argv[])
|
|||
void
|
||||
CloseInput (void)
|
||||
{
|
||||
mieqFini ();
|
||||
}
|
||||
|
|
|
@ -28,6 +28,9 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|||
|
||||
struct _GrabParameters;
|
||||
|
||||
extern void PrintDeviceGrabInfo(DeviceIntPtr dev);
|
||||
extern void UngrabAllDevices(Bool kill_client);
|
||||
|
||||
extern GrabPtr CreateGrab(
|
||||
int /* client */,
|
||||
DeviceIntPtr /* device */,
|
||||
|
|
|
@ -62,10 +62,11 @@ SOFTWARE.
|
|||
#define DEVICE_OFF 2
|
||||
#define DEVICE_CLOSE 3
|
||||
|
||||
#define POINTER_RELATIVE (1 << 1)
|
||||
#define POINTER_ABSOLUTE (1 << 2)
|
||||
#define POINTER_ACCELERATE (1 << 3)
|
||||
#define POINTER_SCREEN (1 << 4) /* Data in screen coordinates */
|
||||
#define POINTER_RELATIVE (1 << 1)
|
||||
#define POINTER_ABSOLUTE (1 << 2)
|
||||
#define POINTER_ACCELERATE (1 << 3)
|
||||
#define POINTER_SCREEN (1 << 4) /* Data in screen coordinates */
|
||||
#define POINTER_NORAW (1 << 5) /* Don't generate RawEvents */
|
||||
|
||||
/*int constants for pointer acceleration schemes*/
|
||||
#define PtrAccelNoOp 0
|
||||
|
|
|
@ -267,4 +267,6 @@ extern _X_EXPORT void EnableMapUnmapEvents(
|
|||
WindowPtr /* pWin */ );
|
||||
|
||||
extern _X_EXPORT void SetRootClip(ScreenPtr pScreen, Bool enable);
|
||||
extern _X_EXPORT void PrintWindowTree(void);
|
||||
|
||||
#endif /* WINDOW_H */
|
||||
|
|
|
@ -683,7 +683,7 @@ miPointerMove (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
|
|||
|
||||
valuator_mask_set_range(&mask, 0, 2, valuators);
|
||||
nevents = GetPointerEvents(events, pDev, MotionNotify, 0,
|
||||
POINTER_SCREEN | POINTER_ABSOLUTE, &mask);
|
||||
POINTER_SCREEN | POINTER_ABSOLUTE | POINTER_NORAW, &mask);
|
||||
|
||||
OsBlockSignals();
|
||||
#ifdef XQUARTZ
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright © 2000 Keith Packard
|
||||
* Copyright © 2000 Keith Packard
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
|
|
|
@ -40,5 +40,6 @@ libxservertest_la_LIBADD = \
|
|||
$(top_builddir)/mi/libmi.la \
|
||||
$(top_builddir)/os/libos.la \
|
||||
@XORG_LIBS@
|
||||
libxservertest_la_DEPENDENCIES = $(libxservertest_la_LIBADD)
|
||||
endif
|
||||
endif
|
||||
|
|
|
@ -70,6 +70,8 @@ static void test_values_XIRawEvent(RawDeviceEvent *in, xXIRawEvent *out,
|
|||
|
||||
for (i = 0; out->valuators_len && i < sizeof(in->valuators.mask) * 8; i++)
|
||||
{
|
||||
if (i >= MAX_VALUATORS)
|
||||
assert (!XIMaskIsSet(in->valuators.mask, i));
|
||||
assert (XIMaskIsSet(in->valuators.mask, i) == XIMaskIsSet(ptr, i));
|
||||
if (XIMaskIsSet(in->valuators.mask, i))
|
||||
bits_set++;
|
||||
|
@ -238,7 +240,7 @@ static void test_convert_XIRawEvent(void)
|
|||
test_XIRawEvent(&in);
|
||||
|
||||
printf("Testing valuator masks\n");
|
||||
for (i = 0; i < sizeof(in.valuators.mask) * 8; i++)
|
||||
for (i = 0; i < MAX_VALUATORS; i++)
|
||||
{
|
||||
XISetMask(in.valuators.mask, i);
|
||||
test_XIRawEvent(&in);
|
||||
|
@ -257,7 +259,7 @@ static void test_convert_XIRawEvent(void)
|
|||
XIClearMask(in.valuators.mask, i);
|
||||
}
|
||||
|
||||
for (i = 0; i < sizeof(in.valuators.mask) * 8; i++)
|
||||
for (i = 0; i < MAX_VALUATORS; i++)
|
||||
{
|
||||
XISetMask(in.valuators.mask, i);
|
||||
test_XIRawEvent(&in);
|
||||
|
@ -354,7 +356,7 @@ static void test_values_XIDeviceEvent(DeviceEvent *in, xXIDeviceEvent *out,
|
|||
|
||||
|
||||
valuators = 0;
|
||||
for (i = 0; i < sizeof(in->valuators.mask) * 8; i++)
|
||||
for (i = 0; i < MAX_VALUATORS; i++)
|
||||
if (XIMaskIsSet(in->valuators.mask, i))
|
||||
valuators++;
|
||||
|
||||
|
@ -365,7 +367,9 @@ static void test_values_XIDeviceEvent(DeviceEvent *in, xXIDeviceEvent *out,
|
|||
for (i = 0; i < sizeof(in->valuators.mask) * 8 ||
|
||||
i < (out->valuators_len * 4) * 8; i++)
|
||||
{
|
||||
if (i > sizeof(in->valuators.mask) * 8)
|
||||
if (i >= MAX_VALUATORS)
|
||||
assert(!XIMaskIsSet(in->valuators.mask, i) && !XIMaskIsSet(ptr, i));
|
||||
else if (i > sizeof(in->valuators.mask) * 8)
|
||||
assert(!XIMaskIsSet(ptr, i));
|
||||
else if (i > out->valuators_len * 4 * 8)
|
||||
assert(!XIMaskIsSet(in->valuators.mask, i));
|
||||
|
@ -610,14 +614,14 @@ static void test_convert_XIDeviceEvent(void)
|
|||
}
|
||||
|
||||
printf("Testing valuator masks\n");
|
||||
for (i = 0; i < sizeof(in.valuators.mask) * 8; i++)
|
||||
for (i = 0; i < MAX_VALUATORS; i++)
|
||||
{
|
||||
XISetMask(in.valuators.mask, i);
|
||||
test_XIDeviceEvent(&in);
|
||||
XIClearMask(in.valuators.mask, i);
|
||||
}
|
||||
|
||||
for (i = 0; i < sizeof(in.valuators.mask) * 8; i++)
|
||||
for (i = 0; i < MAX_VALUATORS; i++)
|
||||
{
|
||||
XISetMask(in.valuators.mask, i);
|
||||
|
||||
|
@ -627,7 +631,7 @@ static void test_convert_XIDeviceEvent(void)
|
|||
XIClearMask(in.valuators.mask, i);
|
||||
}
|
||||
|
||||
for (i = 0; i < sizeof(in.valuators.mask) * 8; i++)
|
||||
for (i = 0; i < MAX_VALUATORS; i++)
|
||||
{
|
||||
XISetMask(in.valuators.mask, i);
|
||||
test_XIDeviceEvent(&in);
|
||||
|
|
Loading…
Reference in New Issue