mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2025-12-31 07:50:13 +01:00
Merge commit 'origin/server-1.6-branch' into xorg-server-1.6-apple
This commit is contained in:
commit
45128ae020
23 changed files with 154 additions and 75 deletions
|
|
@ -1349,15 +1349,6 @@ ProcSELinuxSetCreateContext(ClientPtr client, unsigned offset)
|
|||
goto out;
|
||||
privPtr = &serverClient->devPrivates;
|
||||
}
|
||||
else if (offset == USE_SEL) {
|
||||
/* Selection use context currently requires no selections owned */
|
||||
Selection *pSel;
|
||||
for (pSel = CurrentSelections; pSel; pSel = pSel->next)
|
||||
if (pSel->client == client) {
|
||||
rc = BadMatch;
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
ptr = dixLookupPrivate(privPtr, subjectKey);
|
||||
pSid = (security_id_t *)(ptr + offset);
|
||||
|
|
|
|||
|
|
@ -1778,7 +1778,8 @@ SendDeviceMappingNotify(ClientPtr client, CARD8 request,
|
|||
}
|
||||
|
||||
#ifdef XKB
|
||||
if (request == MappingKeyboard || request == MappingModifier)
|
||||
if (!noXkbExtension && (request == MappingKeyboard ||
|
||||
request == MappingModifier))
|
||||
XkbApplyMappingChange(dev, request, firstKeyCode, count, client);
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -602,13 +602,6 @@ ProcXListDeviceProperties (ClientPtr client)
|
|||
rep.length = (numProps * sizeof(Atom)) >> 2;
|
||||
rep.sequenceNumber = client->sequence;
|
||||
rep.nAtoms = numProps;
|
||||
if (client->swapped)
|
||||
{
|
||||
int n;
|
||||
swaps (&rep.sequenceNumber, n);
|
||||
swapl (&rep.length, n);
|
||||
swaps (&rep.nAtoms, n);
|
||||
}
|
||||
temppAtoms = pAtoms;
|
||||
for (prop = dev->properties.properties; prop; prop = prop->next)
|
||||
*temppAtoms++ = prop->propertyName;
|
||||
|
|
@ -650,7 +643,7 @@ ProcXChangeDeviceProperty (ClientPtr client)
|
|||
return BadValue;
|
||||
}
|
||||
len = stuff->nUnits;
|
||||
if (len > ((0xffffffff - sizeof(xChangePropertyReq)) >> 2))
|
||||
if (len > ((0xffffffff - sizeof(xChangeDevicePropertyReq)) >> 2))
|
||||
return BadLength;
|
||||
sizeInBytes = format>>3;
|
||||
totalSize = len * sizeInBytes;
|
||||
|
|
|
|||
|
|
@ -26,12 +26,12 @@ dnl
|
|||
dnl Process this file with autoconf to create configure.
|
||||
|
||||
AC_PREREQ(2.57)
|
||||
AC_INIT([xorg-server], 1.6.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
|
||||
AC_INIT([xorg-server], 1.6.1.901, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
|
||||
AC_CONFIG_SRCDIR([Makefile.am])
|
||||
AM_INIT_AUTOMAKE([dist-bzip2 foreign])
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
RELEASE_DATE="2009-4-14"
|
||||
RELEASE_DATE="2009-5-8"
|
||||
|
||||
dnl this gets generated by autoheader, and thus contains all the defines. we
|
||||
dnl don't ever actually use it, internally.
|
||||
|
|
|
|||
23
dix/events.c
23
dix/events.c
|
|
@ -625,6 +625,23 @@ XineramaCheckMotion(xEvent *xE, DeviceIntPtr pDev)
|
|||
|
||||
if (xE && !syncEvents.playingEvents)
|
||||
{
|
||||
/* GetPointerEvents() guarantees that pointer events have the correct
|
||||
rootX/Y set already. */
|
||||
switch(xE->u.u.type)
|
||||
{
|
||||
case ButtonPress:
|
||||
case ButtonRelease:
|
||||
case MotionNotify:
|
||||
break;
|
||||
default:
|
||||
if (xE->u.u.type == DeviceButtonPress ||
|
||||
xE->u.u.type == DeviceButtonRelease ||
|
||||
xE->u.u.type == DeviceMotionNotify)
|
||||
break;
|
||||
/* all other events return FALSE */
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* Motion events entering DIX get translated to Screen 0
|
||||
coordinates. Replayed events have already been
|
||||
translated since they've entered DIX before */
|
||||
|
|
@ -4203,10 +4220,10 @@ CoreFocusEvent(DeviceIntPtr dev, int type, int mode, int detail, WindowPtr pWin)
|
|||
{
|
||||
xKeymapEvent ke;
|
||||
ClientPtr client = clients[CLIENT_ID(pWin->drawable.id)];
|
||||
if (XaceHook(XACE_DEVICE_ACCESS, client, dev, FALSE))
|
||||
memmove((char *)&ke.map[0], (char *)&dev->key->down[1], 31);
|
||||
else
|
||||
if (XaceHook(XACE_DEVICE_ACCESS, client, dev, DixReadAccess))
|
||||
bzero((char *)&ke.map[0], 31);
|
||||
else
|
||||
memmove((char *)&ke.map[0], (char *)&dev->key->down[1], 31);
|
||||
|
||||
ke.type = KeymapNotify;
|
||||
(void)DeliverEventsToWindow(dev, pWin, (xEvent *)&ke, 1,
|
||||
|
|
|
|||
|
|
@ -820,11 +820,15 @@ GetKeyboardValuatorEvents(EventList *events, DeviceIntPtr pDev, int type,
|
|||
if (noXkbExtension)
|
||||
#endif
|
||||
{
|
||||
numEvents += GetKeyboardValuatorEvents(events, pDev,
|
||||
KeyRelease, key_code,
|
||||
first_valuator, num_valuators,
|
||||
valuators);
|
||||
events += numEvents;
|
||||
int numReleaseEvents;
|
||||
|
||||
numReleaseEvents = GetKeyboardValuatorEvents(events, pDev,
|
||||
KeyRelease, key_code,
|
||||
first_valuator,
|
||||
num_valuators,
|
||||
valuators);
|
||||
numEvents += numReleaseEvents;
|
||||
events += numReleaseEvents;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -117,10 +117,6 @@ sets key-click volume (allowable range: 0-100).
|
|||
sets the visual class for the root window of color screens.
|
||||
The class numbers are as specified in the X protocol.
|
||||
Not obeyed by all servers.
|
||||
.TP 8
|
||||
.B \-co \fIfilename\fP
|
||||
sets name of RGB color database. The default is
|
||||
.IR __projectroot__/share/X11/rgb .
|
||||
.ig
|
||||
.TP 8
|
||||
.B \-config \fIfilename\fP
|
||||
|
|
@ -564,9 +560,6 @@ Bitmap font directories
|
|||
.IR __projectroot__/lib/X11/fonts/TTF , __projectroot__/lib/X11/fonts/Type1
|
||||
Outline font directories
|
||||
.TP 30
|
||||
.I __projectroot__/share/X11/rgb.txt
|
||||
Color database
|
||||
.TP 30
|
||||
.I /tmp/.X11-unix/X\fBn\fP
|
||||
Unix domain socket for display number \fBn\fP
|
||||
.TP 30
|
||||
|
|
|
|||
13
exa/exa.c
13
exa/exa.c
|
|
@ -511,6 +511,12 @@ ExaDoPrepareAccess(DrawablePtr pDrawable, int index)
|
|||
if (pExaScr->info->PrepareAccess == NULL)
|
||||
return;
|
||||
|
||||
if (index >= EXA_PREPARE_AUX0 &&
|
||||
!(pExaScr->info->flags & EXA_SUPPORTS_PREPARE_AUX)) {
|
||||
exaMoveOutPixmap (pPixmap);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!(*pExaScr->info->PrepareAccess) (pPixmap, index)) {
|
||||
ExaPixmapPriv (pPixmap);
|
||||
if (pExaPixmap->score == EXA_PIXMAP_SCORE_PINNED)
|
||||
|
|
@ -570,6 +576,13 @@ exaFinishAccess(DrawablePtr pDrawable, int index)
|
|||
if (!exaPixmapIsOffscreen (pPixmap))
|
||||
return;
|
||||
|
||||
if (index >= EXA_PREPARE_AUX0 &&
|
||||
!(pExaScr->info->flags & EXA_SUPPORTS_PREPARE_AUX)) {
|
||||
ErrorF("EXA bug: Trying to call driver FinishAccess hook with "
|
||||
"unsupported index EXA_PREPARE_AUX*\n");
|
||||
return;
|
||||
}
|
||||
|
||||
(*pExaScr->info->FinishAccess) (pPixmap, index);
|
||||
}
|
||||
|
||||
|
|
|
|||
14
exa/exa.h
14
exa/exa.h
|
|
@ -672,6 +672,13 @@ typedef struct _ExaDriver {
|
|||
* from.
|
||||
*/
|
||||
#define EXA_PREPARE_MASK 2
|
||||
/**
|
||||
* EXA_PREPARE_AUX* are additional indices for other purposes, e.g.
|
||||
* separate alpha maps with Composite operations.
|
||||
*/
|
||||
#define EXA_PREPARE_AUX0 3
|
||||
#define EXA_PREPARE_AUX1 4
|
||||
#define EXA_PREPARE_AUX2 5
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
|
|
@ -742,6 +749,13 @@ typedef struct _ExaDriver {
|
|||
*/
|
||||
#define EXA_HANDLES_PIXMAPS (1 << 3)
|
||||
|
||||
/**
|
||||
* EXA_SUPPORTS_PREPARE_AUX indicates to EXA that the driver can handle the
|
||||
* EXA_PREPARE_AUX* indices in the Prepare/FinishAccess hooks. If there are no
|
||||
* such hooks, this flag has no effect.
|
||||
*/
|
||||
#define EXA_SUPPORTS_PREPARE_AUX (1 << 4)
|
||||
|
||||
/** @} */
|
||||
|
||||
/* in exa.c */
|
||||
|
|
|
|||
|
|
@ -162,6 +162,7 @@ exaCopyDirty(ExaMigrationPtr migrate, RegionPtr pValidDst, RegionPtr pValidSrc,
|
|||
if (pExaScr->optimize_migration) {
|
||||
RegionPtr pending_damage = DamagePendingRegion(pExaPixmap->pDamage);
|
||||
|
||||
#if DEBUG_MIGRATE
|
||||
if (REGION_NIL(pending_damage)) {
|
||||
static Bool firsttime = TRUE;
|
||||
|
||||
|
|
@ -170,6 +171,7 @@ exaCopyDirty(ExaMigrationPtr migrate, RegionPtr pValidDst, RegionPtr pValidSrc,
|
|||
firsttime = FALSE;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
REGION_INTERSECT(pScreen, &CopyReg, &CopyReg, pending_damage);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -309,6 +309,15 @@ ExaCheckComposite (CARD8 op,
|
|||
|
||||
REGION_NULL(pScreen, ®ion);
|
||||
|
||||
/* We need to prepare access to any separate alpha maps first, in case the
|
||||
* driver doesn't support EXA_PREPARE_AUX*, in which case EXA_PREPARE_SRC
|
||||
* may be used for moving them out.
|
||||
*/
|
||||
if (pSrc->alphaMap && pSrc->alphaMap->pDrawable)
|
||||
exaPrepareAccess(pSrc->alphaMap->pDrawable, EXA_PREPARE_AUX2);
|
||||
if (pMask && pMask->alphaMap && pMask->alphaMap->pDrawable)
|
||||
exaPrepareAccess(pMask->alphaMap->pDrawable, EXA_PREPARE_AUX1);
|
||||
|
||||
if (!exaOpReadsDestination(op)) {
|
||||
if (!miComputeCompositeRegion (®ion, pSrc, pMask, pDst,
|
||||
xSrc, ySrc, xMask, yMask, xDst, yDst,
|
||||
|
|
@ -321,9 +330,17 @@ ExaCheckComposite (CARD8 op,
|
|||
|
||||
REGION_TRANSLATE(pScreen, ®ion, xoff, yoff);
|
||||
|
||||
if (pDst->alphaMap && pDst->alphaMap->pDrawable)
|
||||
exaPrepareAccessReg(pDst->alphaMap->pDrawable, EXA_PREPARE_AUX0,
|
||||
®ion);
|
||||
|
||||
exaPrepareAccessReg (pDst->pDrawable, EXA_PREPARE_DEST, ®ion);
|
||||
} else
|
||||
} else {
|
||||
if (pDst->alphaMap && pDst->alphaMap->pDrawable)
|
||||
exaPrepareAccess(pDst->alphaMap->pDrawable, EXA_PREPARE_AUX0);
|
||||
|
||||
exaPrepareAccess (pDst->pDrawable, EXA_PREPARE_DEST);
|
||||
}
|
||||
|
||||
EXA_FALLBACK(("from picts %p/%p to pict %p\n",
|
||||
pSrc, pMask, pDst));
|
||||
|
|
@ -346,9 +363,15 @@ ExaCheckComposite (CARD8 op,
|
|||
height);
|
||||
if (pMask && pMask->pDrawable != NULL)
|
||||
exaFinishAccess (pMask->pDrawable, EXA_PREPARE_MASK);
|
||||
if (pMask && pMask->alphaMap && pMask->alphaMap->pDrawable)
|
||||
exaFinishAccess(pMask->alphaMap->pDrawable, EXA_PREPARE_AUX1);
|
||||
if (pSrc->pDrawable != NULL)
|
||||
exaFinishAccess (pSrc->pDrawable, EXA_PREPARE_SRC);
|
||||
if (pSrc->alphaMap && pSrc->alphaMap->pDrawable)
|
||||
exaFinishAccess(pSrc->alphaMap->pDrawable, EXA_PREPARE_AUX2);
|
||||
exaFinishAccess (pDst->pDrawable, EXA_PREPARE_DEST);
|
||||
if (pDst->alphaMap && pDst->alphaMap->pDrawable)
|
||||
exaFinishAccess(pDst->alphaMap->pDrawable, EXA_PREPARE_AUX0);
|
||||
|
||||
REGION_UNINIT(pScreen, ®ion);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -601,7 +601,9 @@ configFiles(XF86ConfFilesPtr fileconf)
|
|||
defaultFontPath = Xprintf("%s%s%s",
|
||||
fileconf->file_fontpath,
|
||||
*temp_path ? "," : "", temp_path);
|
||||
must_copy = FALSE;
|
||||
if (defaultFontPath != NULL) {
|
||||
must_copy = FALSE;
|
||||
}
|
||||
}
|
||||
else
|
||||
defaultFontPath = fileconf->file_fontpath;
|
||||
|
|
@ -617,7 +619,14 @@ configFiles(XF86ConfFilesPtr fileconf)
|
|||
!((start == temp_path || start[-1] == ',') && (!*end || *end == ','))) {
|
||||
defaultFontPath = Xprintf("%s%sbuilt-ins",
|
||||
temp_path, *temp_path ? "," : "");
|
||||
must_copy = FALSE;
|
||||
if (must_copy == TRUE) {
|
||||
if (defaultFontPath != NULL) {
|
||||
must_copy = FALSE;
|
||||
}
|
||||
} else {
|
||||
/* already made a copy of the font path */
|
||||
xfree(temp_path);
|
||||
}
|
||||
}
|
||||
/* xf86ValidateFontPath modifies its argument, but returns a copy of it. */
|
||||
temp_path = must_copy ? XNFstrdup(defaultFontPath) : defaultFontPath;
|
||||
|
|
|
|||
|
|
@ -543,7 +543,11 @@ xf86NewInputDevice(IDevPtr idev, DeviceIntPtr *pdev, BOOL enable)
|
|||
dev = pInfo->dev;
|
||||
rval = ActivateDevice(dev);
|
||||
if (rval != Success)
|
||||
{
|
||||
xf86Msg(X_ERROR, "Couldn't init device \"%s\"\n", idev->identifier);
|
||||
RemoveDevice(dev);
|
||||
goto unwind;
|
||||
}
|
||||
|
||||
/* Enable it if it's properly initialised and we're currently in the VT */
|
||||
if (enable && dev->inited && dev->startup && xf86Screens[0]->vtSema)
|
||||
|
|
|
|||
|
|
@ -1543,6 +1543,7 @@ ProcXF86VidModeGetGammaRamp(ClientPtr client)
|
|||
{
|
||||
CARD16 *ramp = NULL;
|
||||
int n, length, i;
|
||||
size_t ramplen;
|
||||
xXF86VidModeGetGammaRampReply rep;
|
||||
REQUEST(xXF86VidModeGetGammaRampReq);
|
||||
|
||||
|
|
@ -1557,7 +1558,8 @@ ProcXF86VidModeGetGammaRamp(ClientPtr client)
|
|||
length = (stuff->size + 1) & ~1;
|
||||
|
||||
if(stuff->size) {
|
||||
if(!(ramp = xalloc(length * 3 * sizeof(CARD16))))
|
||||
ramplen = length * 3 * sizeof(CARD16);
|
||||
if (!(ramp = xalloc(ramplen)))
|
||||
return BadAlloc;
|
||||
|
||||
if (!VidModeGetGammaRamp(stuff->screen, stuff->size,
|
||||
|
|
@ -1575,13 +1577,12 @@ ProcXF86VidModeGetGammaRamp(ClientPtr client)
|
|||
swaps(&rep.sequenceNumber, n);
|
||||
swapl(&rep.length, n);
|
||||
swaps(&rep.size, n);
|
||||
for(i = 0; i < length * 3; i++)
|
||||
swaps(&ramp[i],n);
|
||||
SwapShorts(ramp, length * 3);
|
||||
}
|
||||
WriteToClient(client, sizeof(xXF86VidModeGetGammaRampReply), (char *)&rep);
|
||||
|
||||
if(stuff->size) {
|
||||
WriteToClient(client, rep.length << 2, (char*)ramp);
|
||||
WriteToClient(client, ramplen, (char*)ramp);
|
||||
xfree(ramp);
|
||||
}
|
||||
|
||||
|
|
@ -2062,7 +2063,6 @@ SProcXF86VidModeGetGamma(ClientPtr client)
|
|||
static int
|
||||
SProcXF86VidModeSetGammaRamp(ClientPtr client)
|
||||
{
|
||||
CARD16 *ramp;
|
||||
int length, n;
|
||||
REQUEST(xXF86VidModeSetGammaRampReq);
|
||||
swaps(&stuff->length, n);
|
||||
|
|
@ -2071,11 +2071,7 @@ SProcXF86VidModeSetGammaRamp(ClientPtr client)
|
|||
swaps(&stuff->screen, n);
|
||||
length = ((stuff->size + 1) & ~1) * 6;
|
||||
REQUEST_FIXED_SIZE(xXF86VidModeSetGammaRampReq, length);
|
||||
ramp = (CARD16*)&stuff[1];
|
||||
while(length--) {
|
||||
swaps(ramp, n);
|
||||
ramp++;
|
||||
}
|
||||
SwapRestS(stuff);
|
||||
return ProcXF86VidModeSetGammaRamp(client);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -542,9 +542,6 @@ Libraries.
|
|||
.B __projectroot__/lib/X11/fonts/\(**
|
||||
Fonts.
|
||||
.TP 30
|
||||
.B __projectroot__/share/X11/rgb.txt
|
||||
Color names to RGB mapping.
|
||||
.TP 30
|
||||
.B __projectroot__/share/X11/XErrorDB
|
||||
Client error message database.
|
||||
.TP 30
|
||||
|
|
|
|||
|
|
@ -80,8 +80,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);
|
||||
|
|
|
|||
|
|
@ -867,7 +867,8 @@ doLoadModule(const char *module, const char *path, const char **subdirlist,
|
|||
if (!strcmp (m, *cim))
|
||||
{
|
||||
xf86MsgVerb(X_INFO, 3, "Module \"%s\" already built-in\n", m);
|
||||
return (ModuleDescPtr) 1;
|
||||
ret = (ModuleDescPtr) 1;
|
||||
goto LoadModule_exit;
|
||||
}
|
||||
|
||||
if (!name) {
|
||||
|
|
|
|||
|
|
@ -2444,18 +2444,23 @@ _X_EXPORT Bool
|
|||
xf86SetDesiredModes (ScrnInfoPtr scrn)
|
||||
{
|
||||
xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn);
|
||||
xf86CrtcPtr crtc = config->crtc[0];
|
||||
int c;
|
||||
|
||||
xf86PrepareOutputs(scrn);
|
||||
xf86PrepareCrtcs(scrn);
|
||||
/* A driver with this hook will take care of this */
|
||||
if (!crtc->funcs->set_mode_major) {
|
||||
xf86PrepareOutputs(scrn);
|
||||
xf86PrepareCrtcs(scrn);
|
||||
}
|
||||
|
||||
for (c = 0; c < config->num_crtc; c++)
|
||||
{
|
||||
xf86CrtcPtr crtc = config->crtc[c];
|
||||
xf86OutputPtr output = NULL;
|
||||
int o;
|
||||
RRTransformPtr transform;
|
||||
|
||||
crtc = config->crtc[c];
|
||||
|
||||
/* Skip disabled CRTCs */
|
||||
if (!crtc->enabled)
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -155,6 +155,11 @@ static Bool quirk_detailed_v_in_cm (int scrnIndex, xf86MonPtr DDC)
|
|||
DDC->vendor.prod_id == 13600)
|
||||
return TRUE;
|
||||
|
||||
/* Bug #21000: LGPhilipsLCD LP154W01-TLAJ */
|
||||
if (memcmp (DDC->vendor.name, "LPL", 4) == 0 &&
|
||||
DDC->vendor.prod_id == 47360)
|
||||
return TRUE;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
@ -165,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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -752,8 +752,8 @@ _X_EXPORT Bool
|
|||
xf86RandR12CreateScreenResources (ScreenPtr pScreen)
|
||||
{
|
||||
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
|
||||
xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn);
|
||||
XF86RandRInfoPtr randrp = XF86RANDRINFO(pScreen);
|
||||
xf86CrtcConfigPtr config;
|
||||
XF86RandRInfoPtr randrp;
|
||||
int c;
|
||||
int width, height;
|
||||
int mmWidth, mmHeight;
|
||||
|
|
@ -763,6 +763,8 @@ xf86RandR12CreateScreenResources (ScreenPtr pScreen)
|
|||
return TRUE;
|
||||
#endif
|
||||
|
||||
config = XF86_CRTC_CONFIG_PTR(pScrn);
|
||||
randrp = XF86RANDRINFO(pScreen);
|
||||
/*
|
||||
* Compute size of screen
|
||||
*/
|
||||
|
|
|
|||
22
os/log.c
22
os/log.c
|
|
@ -312,7 +312,7 @@ _X_EXPORT void
|
|||
LogVMessageVerb(MessageType type, int verb, const char *format, va_list args)
|
||||
{
|
||||
const char *s = X_UNKNOWN_STRING;
|
||||
char *tmpBuf = NULL;
|
||||
char tmpBuf[1024];
|
||||
|
||||
/* Ignore verbosity for X_ERROR */
|
||||
if (logVerbosity >= verb || logFileVerbosity >= verb || type == X_ERROR) {
|
||||
|
|
@ -354,21 +354,11 @@ LogVMessageVerb(MessageType type, int verb, const char *format, va_list args)
|
|||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
* Prefix the format string with the message type. We do it this way
|
||||
* so that LogVWrite() is only called once per message.
|
||||
*/
|
||||
if (s) {
|
||||
tmpBuf = malloc(strlen(format) + strlen(s) + 1 + 1);
|
||||
/* Silently return if malloc fails here. */
|
||||
if (!tmpBuf)
|
||||
return;
|
||||
sprintf(tmpBuf, "%s ", s);
|
||||
strcat(tmpBuf, format);
|
||||
LogVWrite(verb, tmpBuf, args);
|
||||
free(tmpBuf);
|
||||
} else
|
||||
LogVWrite(verb, format, args);
|
||||
/* if s is not NULL we need a space before format */
|
||||
snprintf(tmpBuf, sizeof(tmpBuf), "%s%s%s", s ? s : "",
|
||||
s ? " " : "",
|
||||
format);
|
||||
LogVWrite(verb, tmpBuf, args);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3438,6 +3438,7 @@ ProcXkbSetNamedIndicator(ClientPtr client)
|
|||
for (other = inputInfo.devices; other; other = other->next)
|
||||
{
|
||||
if ((other != dev) && !other->isMaster && (other->u.master == dev) &&
|
||||
(other->kbdfeed || other->leds) &&
|
||||
(XaceHook(XACE_DEVICE_ACCESS, client, other, DixSetAttrAccess) == Success))
|
||||
{
|
||||
rc = _XkbCreateIndicatorMap(other, stuff->indicator,
|
||||
|
|
@ -3461,6 +3462,7 @@ ProcXkbSetNamedIndicator(ClientPtr client)
|
|||
for (other = inputInfo.devices; other; other = other->next)
|
||||
{
|
||||
if ((other != dev) && !other->isMaster && (other->u.master == dev) &&
|
||||
(other->kbdfeed || other->leds) &&
|
||||
(XaceHook(XACE_DEVICE_ACCESS, client, other, DixSetAttrAccess) == Success))
|
||||
{
|
||||
_XkbSetNamedIndicator(client, other, stuff);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue