Merge branch 'master' into xi2

Conflicts:
	Xi/chdevhier.c
	include/input.h
This commit is contained in:
Peter Hutterer 2009-04-24 16:15:47 +10:00
commit 057fc9a4f8
85 changed files with 70020 additions and 46 deletions

View File

@ -54,6 +54,7 @@
extern int DeviceValuator;
extern int DeviceMotionNotify;
extern DevPrivateKey XTstDevicePrivateKey;
#ifdef PANORAMIX
#include "panoramiX.h"
@ -160,6 +161,7 @@ ProcXTestFakeInput(ClientPtr client)
int i;
int base = 0;
int flags = 0;
DeviceIntPtr xtstdevice;
nev = (stuff->length << 2) - sizeof(xReq);
if ((nev % sizeof(xEvent)) || !nev)
@ -268,6 +270,8 @@ ProcXTestFakeInput(ClientPtr client)
} else
{
DeviceIntPtr it;
if (nev != 1)
return BadLength;
switch (type)
@ -294,8 +298,14 @@ ProcXTestFakeInput(ClientPtr client)
return BadValue;
}
if (dev->u.lastSlave)
dev = dev->u.lastSlave;
/* When faking core events through XTest, we always fake through the
* virtual test device.
*/
for(it = inputInfo.devices; it ; it = it->next )
if( !it->isMaster && it->u.master == dev &&
dixLookupPrivate(&it->devPrivates, XTstDevicePrivateKey ))
break;
dev= it;
}
/* If the event has a time set, wait for it to pass */
@ -403,6 +413,7 @@ ProcXTestFakeInput(ClientPtr client)
for (i = 0; i < nevents; i++)
mieqProcessDeviceEvent(dev, (events+i)->event, NULL);
miPointerUpdateSprite(dev);
return client->noClientException;
}

View File

@ -54,6 +54,8 @@
#include "chdevhier.h"
extern DevPrivateKey XTstDevicePrivateKey;
/**
* Send the current state of the device hierarchy to all clients.
*/
@ -119,7 +121,7 @@ int SProcXIChangeDeviceHierarchy(ClientPtr client)
int
ProcXIChangeDeviceHierarchy(ClientPtr client)
{
DeviceIntPtr ptr, keybd;
DeviceIntPtr ptr, keybd, xtstptr, xtstkeybd;
xXIAnyHierarchyChangeInfo *any;
int required_len = sizeof(xXIChangeDeviceHierarchyReq);
char n;
@ -154,7 +156,7 @@ ProcXIChangeDeviceHierarchy(ClientPtr client)
strncpy(name, (char*)&c[1], c->name_len);
rc = AllocMasterDevice(client, name, &ptr, &keybd);
rc = AllocDevicePair(client, name, &ptr, &keybd, TRUE);
if (rc != Success)
{
xfree(name);
@ -164,14 +166,33 @@ ProcXIChangeDeviceHierarchy(ClientPtr client)
if (!c->send_core)
ptr->coreEvents = keybd->coreEvents = FALSE;
/* Allocate virtual slave devices for xtest events */
rc = AllocXtstDevice(client, name, &xtstptr, &xtstkeybd);
if (rc != Success)
{
xfree(name);
goto unwind;
}
ActivateDevice(ptr);
ActivateDevice(keybd);
ActivateDevice(xtstptr);
ActivateDevice(xtstkeybd);
if (c->enable)
{
EnableDevice(ptr);
EnableDevice(keybd);
EnableDevice(xtstptr);
EnableDevice(xtstkeybd);
}
/* Attach the XTest virtual devices to the newly
created master device */
AttachDevice(NULL, xtstptr, ptr);
AttachDevice(NULL, xtstkeybd, keybd);
xfree(name);
flags |= HF_MasterAdded;
}
@ -179,6 +200,7 @@ ProcXIChangeDeviceHierarchy(ClientPtr client)
case CH_RemoveMasterDevice:
{
xXIRemoveMasterInfo* r = (xXIRemoveMasterInfo*)any;
DeviceIntPtr xtstdevice;
if (r->return_mode != AttachToMaster &&
r->return_mode != Floating)
@ -204,7 +226,17 @@ ProcXIChangeDeviceHierarchy(ClientPtr client)
goto unwind;
}
/* disable keyboards first */
for(xtstdevice = inputInfo.devices; xtstdevice ; xtstdevice = xtstdevice->next )
if( !xtstdevice->isMaster && xtstdevice->u.master == ptr &&
dixLookupPrivate(&xtstdevice->devPrivates, XTstDevicePrivateKey ))
break;
rc = dixLookupDevice(&xtstptr, xtstdevice->id, client,
DixDestroyAccess);
if (rc != Success)
goto unwind;
/* find keyboards to destroy */
if (IsPointerDevice(ptr))
{
rc = dixLookupDevice(&keybd,
@ -213,6 +245,7 @@ ProcXIChangeDeviceHierarchy(ClientPtr client)
DixDestroyAccess);
if (rc != Success)
goto unwind;
}
else
{
@ -223,8 +256,47 @@ ProcXIChangeDeviceHierarchy(ClientPtr client)
DixDestroyAccess);
if (rc != Success)
goto unwind;
}
/* handle xtst pointer / keyboard slave devices */
if ( IsPointerDevice(xtstptr))
{
/* Search the matching keyboard */
for(xtstdevice = inputInfo.devices; xtstdevice ; xtstdevice = xtstdevice->next )
if( !xtstdevice->isMaster &&
xtstdevice->u.master == keybd &&
IsKeyboardDevice(xtstdevice) &&
dixLookupPrivate(&xtstdevice->devPrivates, XTstDevicePrivateKey ))
break;
rc = dixLookupDevice(&xtstkeybd,
xtstdevice->id,
client,
DixDestroyAccess);
if (rc != Success)
goto unwind;
}
else
{
xtstkeybd = xtstptr;
/* Search the matching pointer */
for(xtstdevice = inputInfo.devices; xtstdevice ; xtstdevice = xtstdevice->next )
if( !xtstdevice->isMaster &&
xtstdevice->u.master == ptr &&
IsPointerDevice(xtstdevice) &&
dixLookupPrivate(&xtstdevice->devPrivates, XTstDevicePrivateKey )
)
break;
rc = dixLookupDevice(&xtstptr,
xtstdevice->id,
client,
DixDestroyAccess);
if (rc != Success)
goto unwind;
}
/* Disabling sends the devices floating, reattach them if
* desired. */
@ -274,9 +346,18 @@ ProcXIChangeDeviceHierarchy(ClientPtr client)
/* can't disable until we removed pairing */
keybd->spriteInfo->paired = NULL;
ptr->spriteInfo->paired = NULL;
xtstptr->spriteInfo->paired = NULL;
xtstkeybd->spriteInfo->paired = NULL;
/* disable the remove the devices, xtst devices must be done first
else the sprites they rely on will be destroyed */
DisableDevice(xtstptr);
DisableDevice(xtstkeybd);
DisableDevice(keybd);
DisableDevice(ptr);
RemoveDevice(xtstptr);
RemoveDevice(xtstkeybd);
RemoveDevice(keybd);
RemoveDevice(ptr);
flags |= HF_MasterRemoved;
@ -285,6 +366,7 @@ ProcXIChangeDeviceHierarchy(ClientPtr client)
case CH_DetachSlave:
{
xXIDetachSlaveInfo* c = (xXIDetachSlaveInfo*)any;
DeviceIntPtr *xtstdevice;
rc = dixLookupDevice(&ptr, c->deviceid, client,
DixWriteAccess);
@ -298,6 +380,17 @@ ProcXIChangeDeviceHierarchy(ClientPtr client)
goto unwind;
}
xtstdevice = dixLookupPrivate( &ptr->devPrivates,
XTstDevicePrivateKey );
/* Don't allow changes to Xtst Devices, these are fixed */
if( xtstdevice )
{
client->errorValue = c->deviceid;
rc = BadDevice;
goto unwind;
}
AttachDevice(client, ptr, NULL);
flags |= HF_SlaveDetached;
}
@ -306,6 +399,7 @@ ProcXIChangeDeviceHierarchy(ClientPtr client)
{
xXIAttachSlaveInfo* c = (xXIAttachSlaveInfo*)any;
DeviceIntPtr newmaster;
DeviceIntPtr *xtstdevice;
rc = dixLookupDevice(&ptr, c->deviceid, client,
DixWriteAccess);
@ -319,6 +413,17 @@ ProcXIChangeDeviceHierarchy(ClientPtr client)
goto unwind;
}
xtstdevice = dixLookupPrivate( &ptr->devPrivates,
XTstDevicePrivateKey );
/* Don't allow changes to Xtst Devices, these are fixed */
if( xtstdevice )
{
client->errorValue = c->deviceid;
rc = BadDevice;
goto unwind;
}
rc = dixLookupDevice(&newmaster, c->new_master,
client, DixWriteAccess);
if (rc != Success)

View File

@ -90,9 +90,24 @@ SOFTWARE.
static int CoreDevicePrivateKeyIndex;
DevPrivateKey CoreDevicePrivateKey = &CoreDevicePrivateKeyIndex;
/* Used to sture classes currently not in use by an MD */
/* Used to store classes currently not in use by an MD */
static int UnusedClassesPrivateKeyIndex;
DevPrivateKey UnusedClassesPrivateKey = &UnusedClassesPrivateKeyIndex;
/* Used to store if a device is an XTest Virtual device */
static int XTstDevicePrivateKeyIndex;
DevPrivateKey XTstDevicePrivateKey = &XTstDevicePrivateKeyIndex;
/**
* vxtstpointer
* is the virtual pointer for XTest. It is the first slave
* device of the VCP.
* vxtstkeyboard
* is the virtual keyboard for XTest. It is the first slave
* device of the VCK
*
* Neither of these devices can be deleted.
*/
DeviceIntPtr vxtstpointer, vxtstkeyboard;
/**
@ -549,9 +564,9 @@ CorePointerProc(DeviceIntPtr pDev, int what)
void
InitCoreDevices(void)
{
if (AllocMasterDevice(serverClient, "Virtual core",
&inputInfo.pointer,
&inputInfo.keyboard) != Success)
if (AllocDevicePair(serverClient, "Virtual core",
&inputInfo.pointer, &inputInfo.keyboard,
TRUE) != Success)
FatalError("Failed to allocate core devices");
if (ActivateDevice(inputInfo.pointer) != Success ||
@ -560,6 +575,25 @@ InitCoreDevices(void)
if (!EnableDevice(inputInfo.pointer) ||
!EnableDevice(inputInfo.keyboard))
FatalError("Failed to enable core devices.");
/*
Allocate an virtual slave device for xtest events, this
is a slave device to inputInfo master devices
*/
if(AllocXtstDevice(serverClient, "Virtual core",
&vxtstpointer,
&vxtstkeyboard) != Success)
FatalError("Failed to allocate XTst devices");
if (ActivateDevice(vxtstpointer) != Success ||
ActivateDevice(vxtstkeyboard) != Success)
FatalError("Failed to activate xtst core devices.");
if (!EnableDevice(vxtstpointer) ||
!EnableDevice(vxtstkeyboard))
FatalError("Failed to enable xtst core devices.");
AttachDevice(NULL, vxtstpointer, inputInfo.pointer);
AttachDevice(NULL, vxtstkeyboard, inputInfo.keyboard);
}
/**
@ -2273,12 +2307,16 @@ GetPairedDevice(DeviceIntPtr dev)
/**
* Create a new master device (== one pointer, one keyboard device).
* Create a new device pair (== one pointer, one keyboard device).
* Only allocates the devices, you will need to call ActivateDevice() and
* EnableDevice() manually.
* Either a master or a slave device can be created depending on
* the value for master.
*/
int
AllocMasterDevice(ClientPtr client, char* name, DeviceIntPtr* ptr, DeviceIntPtr* keybd)
AllocDevicePair (ClientPtr client, char* name,
DeviceIntPtr* ptr, DeviceIntPtr* keybd,
Bool master)
{
DeviceIntPtr pointer;
DeviceIntPtr keyboard;
@ -2302,7 +2340,7 @@ AllocMasterDevice(ClientPtr client, char* name, DeviceIntPtr* ptr, DeviceIntPtr*
pointer->spriteInfo->spriteOwner = TRUE;
pointer->u.lastSlave = NULL;
pointer->isMaster = TRUE;
pointer->isMaster = master;
keyboard = AddInputDevice(client, CoreKeyboardProc, TRUE);
if (!keyboard)
@ -2324,7 +2362,7 @@ AllocMasterDevice(ClientPtr client, char* name, DeviceIntPtr* ptr, DeviceIntPtr*
keyboard->spriteInfo->spriteOwner = FALSE;
keyboard->u.lastSlave = NULL;
keyboard->isMaster = TRUE;
keyboard->isMaster = master;
/* The ClassesRec stores the device classes currently not used. */
@ -2338,3 +2376,31 @@ AllocMasterDevice(ClientPtr client, char* name, DeviceIntPtr* ptr, DeviceIntPtr*
return Success;
}
/**
* Allocate a device pair that is initialised as a slave
* device with properties that identify the devices as belonging
* to XTest subsystem.
* This only creates the pair, Activate/Enable Device
* still need to be called.
*/
int AllocXtstDevice (ClientPtr client, char* name,
DeviceIntPtr* ptr, DeviceIntPtr* keybd)
{
int retval;
int len = strlen(name);
char *xtstname = xcalloc(len + 6, 1 );
strncpy( xtstname, name, len);
strncat( xtstname, " Xtst", 5 );
retval = AllocDevicePair( client, xtstname, ptr, keybd, FALSE);
if ( retval == Success ){
dixSetPrivate(&((*ptr)->devPrivates), XTstDevicePrivateKey, (void *)True );
dixSetPrivate(&((*keybd)->devPrivates), XTstDevicePrivateKey,(void *)True);
}
xfree( xtstname );
return retval;
}

View File

@ -296,6 +296,13 @@ R021 RANDR:SetCrtcConfig
R022 RANDR:GetCrtcGammaSize
R023 RANDR:GetCrtcGamma
R024 RANDR:SetCrtcGamma
R025 RANDR:GetScreenResourcesCurrent
R026 RANDR:SetCrtcTransform
R027 RANDR:GetCrtcTransform
R028 RANDR:GetPanning
R029 RANDR:SetPanning
R030 RANDR:SetOutputPrimary
R031 RANDR:GetOutputPrimary
V000 RANDR:ScreenChangeNotify
V001 RANDR:Notify
E000 RANDR:BadRROutput
@ -937,6 +944,10 @@ R032 XInputExtension:DeviceBell
R033 XInputExtension:SetDeviceValuators
R034 XInputExtension:GetDeviceControl
R035 XInputExtension:ChangeDeviceControl
R036 XInputExtension:ListDeviceProperties
R037 XInputExtension:ChangeDeviceProperty
R038 XInputExtension:DeleteDeviceProperty
R039 XInputExtension:GetDeviceProperty
V000 XInputExtension:DeviceValuator
V001 XInputExtension:DeviceKeyPress
V002 XInputExtension:DeviceKeyRelease
@ -953,6 +964,7 @@ V012 XInputExtension:ChangeDeviceNotify
V013 XInputExtension:DeviceKeystateNotify
V014 XInputExtension:DeviceButtonstateNotify
V015 XInputExtension:DevicePresenceNotify
V016 XInputExtension:DevicePropertyNotify
E000 XInputExtension:BadDevice
E001 XInputExtension:BadEvent
E002 XInputExtension:BadMode

View File

@ -289,7 +289,7 @@ exaCreatePixmap(ScreenPtr pScreen, int w, int h, int depth,
return NullPixmap;
swap(pExaScr, pScreen, CreatePixmap);
if (!pExaScr->info->CreatePixmap) {
if (!pExaScr->info->CreatePixmap && !pExaScr->info->CreatePixmap2) {
pPixmap = pScreen->CreatePixmap (pScreen, w, h, depth, usage_hint);
} else {
driver_alloc = 1;
@ -324,7 +324,10 @@ exaCreatePixmap(ScreenPtr pScreen, int w, int h, int depth,
*/
pPixmap->devPrivate.ptr = NULL;
pExaPixmap->driverPriv = pExaScr->info->CreatePixmap(pScreen, datasize, 0);
if (pExaScr->info->CreatePixmap2)
pExaPixmap->driverPriv = pExaScr->info->CreatePixmap2(pScreen, w, h, depth, usage_hint, bpp);
else
pExaPixmap->driverPriv = pExaScr->info->CreatePixmap(pScreen, datasize, 0);
if (!pExaPixmap->driverPriv) {
swap(pExaScr, pScreen, DestroyPixmap);
pScreen->DestroyPixmap (pPixmap);
@ -1261,7 +1264,7 @@ exaDriverInit (ScreenPtr pScreen,
wrap(pExaScr, pScreen, DestroyPixmap, exaDestroyPixmap);
wrap(pExaScr, pScreen, ModifyPixmapHeader, exaModifyPixmapHeader);
if (!pExaScr->info->CreatePixmap) {
if (!(pExaScr->info->flags & EXA_HANDLES_PIXMAPS)) {
LogMessage(X_INFO, "EXA(%d): Offscreen pixmap area of %lu bytes\n",
pScreen->myNum,
pExaScr->info->memorySize - pExaScr->info->offScreenBase);
@ -1274,7 +1277,7 @@ exaDriverInit (ScreenPtr pScreen,
else
LogMessage(X_INFO, "EXA(%d): No offscreen pixmaps\n", pScreen->myNum);
if (!pExaScr->info->CreatePixmap) {
if (!(pExaScr->info->flags & EXA_HANDLES_PIXMAPS)) {
DBG_PIXMAP(("============== %ld < %ld\n", pExaScr->info->offScreenBase,
pExaScr->info->memorySize));
if (pExaScr->info->offScreenBase < pExaScr->info->memorySize) {

View File

@ -39,7 +39,7 @@
#include "fb.h"
#define EXA_VERSION_MAJOR 2
#define EXA_VERSION_MINOR 4
#define EXA_VERSION_MINOR 5
#define EXA_VERSION_RELEASE 0
typedef struct _ExaOffscreenArea ExaOffscreenArea;
@ -704,6 +704,8 @@ typedef struct _ExaDriver {
int depth, int bitsPerPixel, int devKind,
pointer pPixData);
void *(*CreatePixmap2)(ScreenPtr pScreen, int width, int height,
int depth, int usage_hint, int bitsPerPixel);
/** @} */
} ExaDriverRec, *ExaDriverPtr;

View File

@ -371,6 +371,9 @@ exaEnableDisableFBAccess (int index, Bool enable)
ScreenPtr pScreen = screenInfo.screens[index];
ExaScreenPriv (pScreen);
if (pExaScr->info->flags & EXA_HANDLES_PIXMAPS)
return;
if (!enable && pExaScr->disableFbCount++ == 0) {
if (pExaScr->info->exa_minor < 1)
ExaOffscreenSwapOut (pScreen);

View File

@ -1086,7 +1086,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
if (!DRIGetDeviceInfo(pScreen, &hFB, &junk,
&framebuffer.size, &framebuffer.stride,
&framebuffer.dev_priv_size, &framebuffer.dev_priv)) {
LogMessage(X_ERROR, "AIGLX error: XF86DRIGetDeviceInfo failed");
LogMessage(X_ERROR, "AIGLX error: XF86DRIGetDeviceInfo failed\n");
goto handle_error;
}
@ -1097,7 +1097,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
status = drmMap(fd, hFB, framebuffer.size,
(drmAddressPtr)&framebuffer.base);
if (status != 0) {
LogMessage(X_ERROR, "AIGLX error: drmMap of framebuffer failed (%s)",
LogMessage(X_ERROR, "AIGLX error: drmMap of framebuffer failed (%s)\n",
strerror(-status));
goto handle_error;
}
@ -1107,7 +1107,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
*/
status = drmMap(fd, hSAREA, SAREA_MAX, &pSAREA);
if (status != 0) {
LogMessage(X_ERROR, "AIGLX error: drmMap of SAREA failed (%s)",
LogMessage(X_ERROR, "AIGLX error: drmMap of SAREA failed (%s)\n",
strerror(-status));
goto handle_error;
}
@ -1125,7 +1125,8 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
screen);
if (screen->driScreen == NULL) {
LogMessage(X_ERROR, "AIGLX error: Calling driver entry point failed");
LogMessage(X_ERROR,
"AIGLX error: Calling driver entry point failed\n");
goto handle_error;
}

View File

@ -443,9 +443,17 @@ dri2GetBuffers(__DRIdrawable *driDrawable,
return private->buffers;
}
static void
dri2FlushFrontBuffer(__DRIdrawable *driDrawable, void *loaderPrivate)
{
(void) driDrawable;
__glXDRIdrawableWaitGL((__GLXdrawable *) loaderPrivate);
}
static const __DRIdri2LoaderExtension loaderExtension = {
{ __DRI_DRI2_LOADER, __DRI_DRI2_LOADER_VERSION },
dri2GetBuffers,
dri2FlushFrontBuffer,
};
static const __DRIextension *loader_extensions[] = {

View File

@ -499,7 +499,8 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
screen);
if (screen->driScreen == NULL) {
LogMessage(X_ERROR, "AIGLX error: Calling driver entry point failed");
LogMessage(X_ERROR,
"AIGLX error: Calling driver entry point failed\n");
goto handle_error;
}

View File

@ -79,8 +79,8 @@ ProcDRI2QueryVersion(ClientPtr client)
rep.type = X_Reply;
rep.length = 0;
rep.sequenceNumber = client->sequence;
rep.majorVersion = DRI2_MAJOR;
rep.minorVersion = DRI2_MINOR;
rep.majorVersion = 1;
rep.minorVersion = 0;
if (client->swapped) {
swaps(&rep.sequenceNumber, n);

View File

@ -170,6 +170,11 @@ static Bool quirk_detailed_use_maximum_size (int scrnIndex, xf86MonPtr DDC)
(DDC->vendor.prod_id == 0 || DDC->vendor.prod_id == 0x2a00))
return TRUE;
/* Bug #21324: Iiyama Vision Master 450 */
if (memcmp (DDC->vendor.name, "IVM", 4) == 0 &&
DDC->vendor.prod_id == 6400)
return TRUE;
return FALSE;
}

View File

@ -191,8 +191,10 @@ static void message_kit_thread (SEL selector, NSObject *arg) {
size_t i;
DEBUG_LOG("state=%d, _x_active=%d, \n", state, _x_active)
if (state) {
if(bgMouseLocationUpdated)
if(bgMouseLocationUpdated) {
DarwinSendPointerEvents(darwinPointer, MotionNotify, 0, bgMouseLocation.x, bgMouseLocation.y, 0.0, 0.0, 0.0);
bgMouseLocationUpdated = FALSE;
}
DarwinSendDDXEvent(kXquartzActivate, 0);
if (!_x_active) {
@ -1064,32 +1066,34 @@ static inline int ensure_flag(int flags, int device_independent, int device_depe
}
if(!quartzServerVisible && noTestExtensions) {
if(ev_button == 0) {
#if defined(XPLUGIN_VERSION) && XPLUGIN_VERSION > 0
/* Older libXplugin (Tiger/"Stock" Leopard) aren't thread safe, so we can't call xp_find_window from the Appkit thread */
xp_window_id wid = 0;
xp_error e;
xp_window_id wid = 0;
xp_error e;
/* Sigh. Need to check that we're really over one of
* our windows. (We need to receive pointer events while
* not in the foreground, but we don't want to receive them
* when another window is over us or we might show a tooltip)
*/
/* Sigh. Need to check that we're really over one of
* our windows. (We need to receive pointer events while
* not in the foreground, but we don't want to receive them
* when another window is over us or we might show a tooltip)
*/
e = xp_find_window(location.x, location.y, 0, &wid);
e = xp_find_window(location.x, location.y, 0, &wid);
if (e == XP_Success && wid == 0)
if (e != XP_Success || (e == XP_Success && wid == 0))
#endif
{
bgMouseLocation = location;
bgMouseLocationUpdated = TRUE;
return;
}
} else {
bgMouseLocationUpdated = FALSE;
{
bgMouseLocation = location;
bgMouseLocationUpdated = TRUE;
return;
}
}
if(bgMouseLocationUpdated) {
if(!(ev_type == MotionNotify && ev_button == 0)) {
DarwinSendPointerEvents(pDev, MotionNotify, 0, location.x,
location.y, pressure, tilt.x, tilt.y);
}
bgMouseLocationUpdated = FALSE;
}
DarwinSendPointerEvents(pDev, ev_type, ev_button, location.x, location.y,
@ -1122,6 +1126,7 @@ static inline int ensure_flag(int flags, int device_independent, int device_depe
* first, since we aren't getting them on background mouse motion
*/
if(!quartzServerVisible && noTestExtensions) {
bgMouseLocationUpdated = FALSE;
DarwinSendPointerEvents(darwinPointer, MotionNotify, 0, location.x,
location.y, pressure, tilt.x, tilt.y);
}

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>LprojCompatibleVersion</key>
<string>66.2</string>
<key>LprojLocale</key>
<string>nl</string>
<key>LprojRevisionLevel</key>
<string>1</string>
<key>LprojVersion</key>
<string>73</string>
</dict>
</plist>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>LprojCompatibleVersion</key>
<string>66.2</string>
<key>LprojLocale</key>
<string>fr</string>
<key>LprojRevisionLevel</key>
<string>1</string>
<key>LprojVersion</key>
<string>73</string>
</dict>
</plist>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>LprojCompatibleVersion</key>
<string>66.2</string>
<key>LprojLocale</key>
<string>de</string>
<key>LprojRevisionLevel</key>
<string>1</string>
<key>LprojVersion</key>
<string>73</string>
</dict>
</plist>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>LprojCompatibleVersion</key>
<string>66.2</string>
<key>LprojLocale</key>
<string>it</string>
<key>LprojRevisionLevel</key>
<string>1</string>
<key>LprojVersion</key>
<string>73</string>
</dict>
</plist>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>LprojCompatibleVersion</key>
<string>66.2</string>
<key>LprojLocale</key>
<string>ja</string>
<key>LprojRevisionLevel</key>
<string>1</string>
<key>LprojVersion</key>
<string>76</string>
</dict>
</plist>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>LprojCompatibleVersion</key>
<string>66.2</string>
<key>LprojLocale</key>
<string>es</string>
<key>LprojRevisionLevel</key>
<string>1</string>
<key>LprojVersion</key>
<string>73</string>
</dict>
</plist>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>LprojCompatibleVersion</key>
<string>66.2</string>
<key>LprojLocale</key>
<string>da</string>
<key>LprojRevisionLevel</key>
<string>1</string>
<key>LprojVersion</key>
<string>73</string>
</dict>
</plist>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>LprojCompatibleVersion</key>
<string>66.2</string>
<key>LprojLocale</key>
<string>fi</string>
<key>LprojRevisionLevel</key>
<string>1</string>
<key>LprojVersion</key>
<string>73</string>
</dict>
</plist>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>LprojCompatibleVersion</key>
<string>66.2</string>
<key>LprojLocale</key>
<string>ko</string>
<key>LprojRevisionLevel</key>
<string>1</string>
<key>LprojVersion</key>
<string>73</string>
</dict>
</plist>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>LprojCompatibleVersion</key>
<string>66.2</string>
<key>LprojLocale</key>
<string>no</string>
<key>LprojRevisionLevel</key>
<string>1</string>
<key>LprojVersion</key>
<string>73</string>
</dict>
</plist>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>LprojCompatibleVersion</key>
<string>66.2</string>
<key>LprojLocale</key>
<string>pl</string>
<key>LprojRevisionLevel</key>
<string>1</string>
<key>LprojVersion</key>
<string>73</string>
</dict>
</plist>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>LprojCompatibleVersion</key>
<string>66.2</string>
<key>LprojLocale</key>
<string>pt</string>
<key>LprojRevisionLevel</key>
<string>1</string>
<key>LprojVersion</key>
<string>73</string>
</dict>
</plist>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>LprojCompatibleVersion</key>
<string>66.2</string>
<key>LprojLocale</key>
<string>pt_PT</string>
<key>LprojRevisionLevel</key>
<string>1</string>
<key>LprojVersion</key>
<string>73</string>
</dict>
</plist>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>LprojCompatibleVersion</key>
<string>66.2</string>
<key>LprojLocale</key>
<string>ru</string>
<key>LprojRevisionLevel</key>
<string>1</string>
<key>LprojVersion</key>
<string>73</string>
</dict>
</plist>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>LprojCompatibleVersion</key>
<string>66.2</string>
<key>LprojLocale</key>
<string>sv</string>
<key>LprojRevisionLevel</key>
<string>1</string>
<key>LprojVersion</key>
<string>73</string>
</dict>
</plist>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>LprojCompatibleVersion</key>
<string>66.2</string>
<key>LprojLocale</key>
<string>zh_CN</string>
<key>LprojRevisionLevel</key>
<string>1</string>
<key>LprojVersion</key>
<string>75.1</string>
</dict>
</plist>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>LprojCompatibleVersion</key>
<string>66.2</string>
<key>LprojLocale</key>
<string>zh_TW</string>
<key>LprojRevisionLevel</key>
<string>1</string>
<key>LprojVersion</key>
<string>73</string>
</dict>
</plist>

File diff suppressed because it is too large Load Diff

View File

@ -469,10 +469,11 @@ extern int AttachDevice(ClientPtr client,
extern _X_EXPORT DeviceIntPtr GetPairedDevice(DeviceIntPtr kbd);
extern int AllocMasterDevice(ClientPtr client,
extern int AllocDevicePair(ClientPtr client,
char* name,
DeviceIntPtr* ptr,
DeviceIntPtr* keybd);
DeviceIntPtr* keybd,
Bool master);
extern void DeepCopyDeviceClasses(DeviceIntPtr from,
DeviceIntPtr to);
@ -481,6 +482,10 @@ extern int generate_modkeymap(ClientPtr client, DeviceIntPtr dev,
KeyCode **modkeymap, int *max_keys_per_mod);
extern int change_modmap(ClientPtr client, DeviceIntPtr dev, KeyCode *map,
int max_keys_per_mod);
extern int AllocXtstDevice(ClientPtr client,
char* name,
DeviceIntPtr* ptr,
DeviceIntPtr* keybd);
/* misc event helpers */
extern Mask GetEventFilter(DeviceIntPtr dev, xEvent *event);

View File

@ -438,7 +438,7 @@ mieqProcessInputEvents(void)
mieqProcessDeviceEvent(dev, event, screen);
/* Update the sprite now. Next event may be from different device. */
if (event->u.any.type == ET_Motion && (master || dev->isMaster))
if (event->u.any.type == ET_Motion && master)
miPointerUpdateSprite(dev);
#ifdef XQUARTZ

View File

@ -594,6 +594,7 @@ InitKeyboardDeviceStruct(DeviceIntPtr dev, XkbRMLVOSet *rmlvo,
InitFocusClassDeviceStruct(dev);
xkbi->kbdProc = ctrl_func;
dev->kbdfeed->BellProc = bell_func;
dev->kbdfeed->CtrlProc = XkbDDXKeybdCtrlProc;
dev->kbdfeed->ctrl = defaultKeyboardControl;