Merge branch 'server-1.5-branch' into xorg-server-1.5-apple
This commit is contained in:
commit
a20a7eb85e
|
@ -287,7 +287,7 @@ out:
|
|||
if (ret == Success) {
|
||||
dpn.type = DevicePresenceNotify;
|
||||
dpn.time = currentTime.milliseconds;
|
||||
dpn.devchange = 1;
|
||||
dpn.devchange = DeviceControlChanged;
|
||||
dpn.deviceid = dev->id;
|
||||
dpn.control = stuff->control;
|
||||
SendEventToAllWindows(dev, DevicePresenceNotifyMask,
|
||||
|
|
|
@ -123,14 +123,9 @@ ProcessOtherEvent(xEventPtr xE, DeviceIntPtr other, int count)
|
|||
deviceValuator *xV = (deviceValuator *) xE;
|
||||
|
||||
if (xE->u.u.type != DeviceValuator) {
|
||||
/* Other types already have root{X,Y} filled in. */
|
||||
if (xE->u.u.type == DeviceKeyPress ||
|
||||
xE->u.u.type == DeviceKeyRelease) {
|
||||
GetSpritePosition(&rootX, &rootY);
|
||||
xE->u.keyButtonPointer.rootX = rootX;
|
||||
xE->u.keyButtonPointer.rootY = rootY;
|
||||
}
|
||||
|
||||
GetSpritePosition(&rootX, &rootY);
|
||||
xE->u.keyButtonPointer.rootX = rootX;
|
||||
xE->u.keyButtonPointer.rootY = rootY;
|
||||
key = xE->u.u.detail;
|
||||
NoticeEventTime(xE);
|
||||
xE->u.keyButtonPointer.state = inputInfo.keyboard->key->state |
|
||||
|
@ -1284,6 +1279,8 @@ SendEventToAllWindows(DeviceIntPtr dev, Mask mask, xEvent * ev, int count)
|
|||
|
||||
for (i = 0; i < screenInfo.numScreens; i++) {
|
||||
pWin = WindowTable[i];
|
||||
if (!pWin)
|
||||
continue;
|
||||
(void)DeliverEventsToWindow(pWin, ev, count, mask, NullGrab, dev->id);
|
||||
p1 = pWin->firstChild;
|
||||
FindInterestedChildren(dev, p1, mask, ev, count);
|
||||
|
|
|
@ -26,7 +26,8 @@ dnl
|
|||
dnl Process this file with autoconf to create configure.
|
||||
|
||||
AC_PREREQ(2.57)
|
||||
AC_INIT([xorg-server], 1.4.99.905, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
|
||||
RELEASE_DATE="23 July 2008"
|
||||
AC_INIT([xorg-server], 1.4.99.906, [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
|
||||
|
@ -421,7 +422,6 @@ VENDOR_MAN_VERSION="Version ${PACKAGE_VERSION}"
|
|||
|
||||
VENDOR_NAME="The X.Org Foundation"
|
||||
VENDOR_NAME_SHORT="X.Org"
|
||||
RELEASE_DATE="5 September 2007"
|
||||
VENDOR_WEB="http://wiki.x.org"
|
||||
|
||||
m4_ifdef([AS_HELP_STRING], , [m4_define([AS_HELP_STRING], m4_defn([AC_HELP_STRING]))])
|
||||
|
@ -695,7 +695,7 @@ else
|
|||
RENDERPROTO="renderproto"
|
||||
fi
|
||||
|
||||
REQUIRED_MODULES="[randrproto >= 1.2] $RENDERPROTO [fixesproto >= 4.0] [damageproto >= 1.1] xcmiscproto xextproto [xproto >= 7.0.9] xtrans [scrnsaverproto >= 1.1] bigreqsproto resourceproto fontsproto [inputproto >= 1.4.2] [kbproto >= 1.0.3]"
|
||||
REQUIRED_MODULES="[randrproto >= 1.2] $RENDERPROTO [fixesproto >= 4.0] [damageproto >= 1.1] xcmiscproto xextproto [xproto >= 7.0.9] xtrans [scrnsaverproto >= 1.1] bigreqsproto resourceproto fontsproto [inputproto >= 1.4.4] [kbproto >= 1.0.3]"
|
||||
REQUIRED_LIBS="xfont xau fontenc [pixman-1 >= 0.9.5]"
|
||||
|
||||
dnl HAVE_DBUS is true if we actually have the D-Bus library, whereas
|
||||
|
|
|
@ -407,10 +407,13 @@ GetKeyboardValuatorEvents(xEvent *events, DeviceIntPtr pDev, int type,
|
|||
int num_valuators, int *valuators) {
|
||||
int numEvents = 0;
|
||||
CARD32 ms = 0;
|
||||
KeySym *map;
|
||||
KeySym *map = pDev->key->curKeySyms.map;
|
||||
KeySym sym;
|
||||
deviceKeyButtonPointer *kbp = NULL;
|
||||
|
||||
sym = map[(key_code - pDev->key->curKeySyms.minKeyCode)
|
||||
* pDev->key->curKeySyms.mapWidth];
|
||||
|
||||
if (!events)
|
||||
return 0;
|
||||
|
||||
|
|
|
@ -450,7 +450,10 @@ int main(int argc, char *argv[], char *envp[])
|
|||
#endif
|
||||
|
||||
config_fini();
|
||||
|
||||
memset(WindowTable, 0, MAXSCREENS * sizeof(WindowPtr));
|
||||
CloseDownDevices();
|
||||
|
||||
for (i = screenInfo.numScreens - 1; i >= 0; i--)
|
||||
{
|
||||
FreeScratchPixmapsForScreen(i);
|
||||
|
|
|
@ -943,11 +943,11 @@ int __glXDisp_GetVisualConfigs(__GLXclientState *cl, GLbyte *pc)
|
|||
buf[p++] = modes->transparentAlpha;
|
||||
buf[p++] = GLX_TRANSPARENT_INDEX_VALUE;
|
||||
buf[p++] = modes->transparentIndex;
|
||||
buf[p++] = 0;
|
||||
buf[p++] = 0;
|
||||
buf[p++] = 0;
|
||||
buf[p++] = 0;
|
||||
buf[p++] = 0;
|
||||
buf[p++] = GLX_SAMPLES_SGIS;
|
||||
buf[p++] = modes->samples;
|
||||
buf[p++] = GLX_SAMPLE_BUFFERS_SGIS;
|
||||
buf[p++] = modes->sampleBuffers;
|
||||
buf[p++] = 0; /* copy over visualSelectGroup (GLX_VISUAL_SELECT_GROUP_SGIX)? */
|
||||
buf[p++] = 0;
|
||||
|
||||
if (client->swapped) {
|
||||
|
@ -959,7 +959,7 @@ int __glXDisp_GetVisualConfigs(__GLXclientState *cl, GLbyte *pc)
|
|||
return Success;
|
||||
}
|
||||
|
||||
#define __GLX_TOTAL_FBCONFIG_ATTRIBS (33)
|
||||
#define __GLX_TOTAL_FBCONFIG_ATTRIBS (35)
|
||||
#define __GLX_FBCONFIG_ATTRIBS_LENGTH (__GLX_TOTAL_FBCONFIG_ATTRIBS * 2)
|
||||
/**
|
||||
* Send the set of GLXFBConfigs to the client. There is not currently
|
||||
|
@ -1037,6 +1037,9 @@ DoGetFBConfigs(__GLXclientState *cl, unsigned screen)
|
|||
WRITE_PAIR( GLX_TRANSPARENT_ALPHA_VALUE, modes->transparentAlpha );
|
||||
WRITE_PAIR( GLX_TRANSPARENT_INDEX_VALUE, modes->transparentIndex );
|
||||
WRITE_PAIR( GLX_SWAP_METHOD_OML, modes->swapMethod );
|
||||
WRITE_PAIR( GLX_SAMPLES_SGIS, modes->samples );
|
||||
WRITE_PAIR( GLX_SAMPLE_BUFFERS_SGIS, modes->sampleBuffers );
|
||||
/* GLX_VISUAL_SELECT_GROUP_SGIX ? */
|
||||
WRITE_PAIR( GLX_DRAWABLE_TYPE, modes->drawableType );
|
||||
WRITE_PAIR( GLX_BIND_TO_TEXTURE_RGB_EXT, modes->bindToTextureRgb );
|
||||
WRITE_PAIR( GLX_BIND_TO_TEXTURE_RGBA_EXT, modes->bindToTextureRgba );
|
||||
|
@ -1223,10 +1226,6 @@ static int DoDestroyDrawable(__GLXclientState *cl, XID glxdrawable, int type)
|
|||
}
|
||||
}
|
||||
|
||||
if (type == GLX_DRAWABLE_PIXMAP) {
|
||||
((PixmapPtr) pGlxDraw->pDraw)->refcnt--;
|
||||
}
|
||||
|
||||
FreeResource(glxdrawable, FALSE);
|
||||
|
||||
return Success;
|
||||
|
|
|
@ -107,6 +107,15 @@ static int ContextGone(__GLXcontext* cx, XID id)
|
|||
*/
|
||||
static Bool DrawableGone(__GLXdrawable *glxPriv, XID xid)
|
||||
{
|
||||
ScreenPtr pScreen = glxPriv->pDraw->pScreen;
|
||||
|
||||
switch (glxPriv->type) {
|
||||
case GLX_DRAWABLE_PIXMAP:
|
||||
case GLX_DRAWABLE_PBUFFER:
|
||||
(*pScreen->DestroyPixmap)((PixmapPtr) glxPriv->pDraw);
|
||||
break;
|
||||
}
|
||||
|
||||
glxPriv->pDraw = NULL;
|
||||
glxPriv->drawId = 0;
|
||||
__glXUnrefDrawable(glxPriv);
|
||||
|
|
|
@ -45,6 +45,16 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#ifdef HAVE_CONFIG_H
|
||||
#include <kdrive-config.h>
|
||||
#endif
|
||||
/*
|
||||
* including some server headers (like kdrive-config.h)
|
||||
* might define the macro _XSERVER64
|
||||
* on 64 bits machines. That macro must _NOT_ be defined for Xlib
|
||||
* client code, otherwise bad things happen.
|
||||
* So let's undef that macro if necessary.
|
||||
*/
|
||||
#ifdef _XSERVER64
|
||||
#undef _XSERVER64
|
||||
#endif
|
||||
|
||||
#ifdef XEPHYR_DRI
|
||||
|
||||
|
|
|
@ -31,6 +31,17 @@
|
|||
#include <kdrive-config.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
* including some server headers (like kdrive-config.h)
|
||||
* might define the macro _XSERVER64
|
||||
* on 64 bits machines. That macro must _NOT_ be defined for Xlib
|
||||
* client code, otherwise bad things happen.
|
||||
* So let's undef that macro if necessary.
|
||||
*/
|
||||
#ifdef _XSERVER64
|
||||
#undef _XSERVER64
|
||||
#endif
|
||||
|
||||
#include <X11/Xlibint.h>
|
||||
#include <GL/glx.h>
|
||||
#include <GL/internal/glcore.h>
|
||||
|
|
|
@ -28,6 +28,16 @@
|
|||
#ifdef HAVE_CONFIG_H
|
||||
#include <kdrive-config.h>
|
||||
#endif
|
||||
/*
|
||||
* including some server headers (like kdrive-config.h)
|
||||
* might define the macro _XSERVER64
|
||||
* on 64 bits machines. That macro must _NOT_ be defined for Xlib
|
||||
* client code, otherwise bad things happen.
|
||||
* So let's undef that macro if necessary.
|
||||
*/
|
||||
#ifdef _XSERVER64
|
||||
#undef _XSERVER64
|
||||
#endif
|
||||
#include <X11/Xutil.h>
|
||||
#include <X11/Xlibint.h>
|
||||
#include <X11/extensions/Xvlib.h>
|
||||
|
|
|
@ -27,6 +27,18 @@
|
|||
#include <kdrive-config.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
* including some server headers (like kdrive-config.h)
|
||||
* might define the macro _XSERVER64
|
||||
* on 64 bits machines. That macro must _NOT_ be defined for Xlib
|
||||
* client code, otherwise bad things happen.
|
||||
* So let's undef that macro if necessary.
|
||||
*/
|
||||
#ifdef _XSERVER64
|
||||
#undef _XSERVER64
|
||||
#endif
|
||||
|
||||
|
||||
#include "hostx.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
|
|
|
@ -2078,7 +2078,7 @@ KdEnqueuePointerEvent(KdPointerInfo *pi, unsigned long flags, int rx, int ry,
|
|||
int (*matrix)[3] = kdPointerMatrix.matrix;
|
||||
unsigned long button;
|
||||
int n;
|
||||
int dixflags;
|
||||
int dixflags = 0;
|
||||
|
||||
if (!pi)
|
||||
return;
|
||||
|
@ -2109,11 +2109,15 @@ KdEnqueuePointerEvent(KdPointerInfo *pi, unsigned long flags, int rx, int ry,
|
|||
z = rz;
|
||||
|
||||
if (flags & KD_MOUSE_DELTA)
|
||||
dixflags = POINTER_RELATIVE & POINTER_ACCELERATE;
|
||||
else
|
||||
dixflags = POINTER_ABSOLUTE;
|
||||
{
|
||||
if (x || y || z)
|
||||
dixflags = POINTER_RELATIVE | POINTER_ACCELERATE;
|
||||
} else if ((pi->dixdev->valuator) && (x != pi->dixdev->valuator->lastx ||
|
||||
y != pi->dixdev->valuator->lasty))
|
||||
dixflags = POINTER_ABSOLUTE;
|
||||
|
||||
_KdEnqueuePointerEvent(pi, MotionNotify, x, y, z, 0, dixflags, FALSE);
|
||||
if (dixflags)
|
||||
_KdEnqueuePointerEvent(pi, MotionNotify, x, y, z, 0, dixflags, FALSE);
|
||||
|
||||
buttons = flags;
|
||||
|
||||
|
|
|
@ -2418,14 +2418,14 @@ configInput(IDevPtr inputp, XF86ConfInputPtr conf_input, MessageType from)
|
|||
}
|
||||
|
||||
static Bool
|
||||
modeIsPresent(char * modename,MonPtr monitorp)
|
||||
modeIsPresent(DisplayModePtr mode, MonPtr monitorp)
|
||||
{
|
||||
DisplayModePtr knownmodes = monitorp->Modes;
|
||||
|
||||
/* all I can think of is a linear search... */
|
||||
while(knownmodes != NULL)
|
||||
{
|
||||
if(!strcmp(modename,knownmodes->name) &&
|
||||
if(!strcmp(mode->name, knownmodes->name) &&
|
||||
!(knownmodes->type & M_T_DEFAULT))
|
||||
return TRUE;
|
||||
knownmodes = knownmodes->next;
|
||||
|
@ -2460,6 +2460,23 @@ static void
|
|||
checkInput(serverLayoutPtr layout) {
|
||||
if (!xf86Info.allowEmptyInput)
|
||||
checkCoreInputDevices(layout, FALSE);
|
||||
else
|
||||
{
|
||||
xf86Msg(X_INFO, "AllowEmptyInput is on.\n"
|
||||
"\tThe server relies on HAL to provide the list of input "
|
||||
"devices.\n\tIf no devices become available, reconfigure "
|
||||
"HAL.\n");
|
||||
if (!layout->inputs || !*layout->inputs)
|
||||
{
|
||||
/* No input device specified in ServerLayout. */
|
||||
if (xf86configptr->conf_input_lst &&
|
||||
xf86configptr->conf_input_lst->inp_identifier)
|
||||
xf86Msg(X_WARNING, "Input devices specified in xorg.conf, but"
|
||||
" not referenced in ServerLayout.\n\tThese devices"
|
||||
" will NOT be available.\n");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -308,12 +308,11 @@ xf86AllocateScrnInfoPrivateIndex(void)
|
|||
return idx;
|
||||
}
|
||||
|
||||
/* Allocate a new InputInfoRec and add it to the head xf86InputDevs. */
|
||||
|
||||
/* Allocate a new InputInfoRec and append it to the tail of xf86InputDevs. */
|
||||
_X_EXPORT InputInfoPtr
|
||||
xf86AllocateInput(InputDriverPtr drv, int flags)
|
||||
{
|
||||
InputInfoPtr new;
|
||||
InputInfoPtr new, *prev = NULL;
|
||||
|
||||
if (!(new = xcalloc(sizeof(InputInfoRec), 1)))
|
||||
return NULL;
|
||||
|
@ -321,8 +320,13 @@ xf86AllocateInput(InputDriverPtr drv, int flags)
|
|||
new->drv = drv;
|
||||
drv->refCount++;
|
||||
new->module = DuplicateModule(drv->module, NULL);
|
||||
new->next = xf86InputDevs;
|
||||
xf86InputDevs = new;
|
||||
|
||||
for (prev = &xf86InputDevs; *prev; prev = &(*prev)->next)
|
||||
;
|
||||
|
||||
*prev = new;
|
||||
new->next = NULL;
|
||||
|
||||
return new;
|
||||
}
|
||||
|
||||
|
|
|
@ -1123,37 +1123,35 @@ InitInput(argc, argv)
|
|||
xf86Info.vtRequestsPending = FALSE;
|
||||
xf86Info.inputPending = FALSE;
|
||||
|
||||
if (serverGeneration == 1) {
|
||||
/* Call the PreInit function for each input device instance. */
|
||||
for (pDev = xf86ConfigLayout.inputs; pDev && *pDev; pDev++) {
|
||||
/* Replace obsolete keyboard driver with kbd */
|
||||
if (!xf86NameCmp((*pDev)->driver, "keyboard")) {
|
||||
strcpy((*pDev)->driver, "kbd");
|
||||
}
|
||||
/* Call the PreInit function for each input device instance. */
|
||||
for (pDev = xf86ConfigLayout.inputs; pDev && *pDev; pDev++) {
|
||||
/* Replace obsolete keyboard driver with kbd */
|
||||
if (!xf86NameCmp((*pDev)->driver, "keyboard")) {
|
||||
strcpy((*pDev)->driver, "kbd");
|
||||
}
|
||||
|
||||
if ((pDrv = xf86LookupInputDriver((*pDev)->driver)) == NULL) {
|
||||
xf86Msg(X_ERROR, "No Input driver matching `%s'\n", (*pDev)->driver);
|
||||
/* XXX For now, just continue. */
|
||||
continue;
|
||||
}
|
||||
if (!pDrv->PreInit) {
|
||||
xf86MsgVerb(X_WARNING, 0,
|
||||
"Input driver `%s' has no PreInit function (ignoring)\n",
|
||||
pDrv->driverName);
|
||||
continue;
|
||||
}
|
||||
pInfo = pDrv->PreInit(pDrv, *pDev, 0);
|
||||
if (!pInfo) {
|
||||
xf86Msg(X_ERROR, "PreInit returned NULL for \"%s\"\n",
|
||||
(*pDev)->identifier);
|
||||
continue;
|
||||
} else if (!(pInfo->flags & XI86_CONFIGURED)) {
|
||||
xf86Msg(X_ERROR, "PreInit failed for input device \"%s\"\n",
|
||||
(*pDev)->identifier);
|
||||
xf86DeleteInput(pInfo, 0);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if ((pDrv = xf86LookupInputDriver((*pDev)->driver)) == NULL) {
|
||||
xf86Msg(X_ERROR, "No Input driver matching `%s'\n", (*pDev)->driver);
|
||||
/* XXX For now, just continue. */
|
||||
continue;
|
||||
}
|
||||
if (!pDrv->PreInit) {
|
||||
xf86MsgVerb(X_WARNING, 0,
|
||||
"Input driver `%s' has no PreInit function (ignoring)\n",
|
||||
pDrv->driverName);
|
||||
continue;
|
||||
}
|
||||
pInfo = pDrv->PreInit(pDrv, *pDev, 0);
|
||||
if (!pInfo) {
|
||||
xf86Msg(X_ERROR, "PreInit returned NULL for \"%s\"\n",
|
||||
(*pDev)->identifier);
|
||||
continue;
|
||||
} else if (!(pInfo->flags & XI86_CONFIGURED)) {
|
||||
xf86Msg(X_ERROR, "PreInit failed for input device \"%s\"\n",
|
||||
(*pDev)->identifier);
|
||||
xf86DeleteInput(pInfo, 0);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
/* Initialise all input devices. */
|
||||
|
|
|
@ -54,6 +54,8 @@ xf86RandRModeRefresh (DisplayModePtr mode)
|
|||
{
|
||||
if (mode->VRefresh)
|
||||
return (int) (mode->VRefresh + 0.5);
|
||||
else if (mode->Clock == 0)
|
||||
return 0;
|
||||
else
|
||||
return (int) (mode->Clock * 1000.0 / mode->HTotal / mode->VTotal + 0.5);
|
||||
}
|
||||
|
|
|
@ -448,6 +448,8 @@ DeleteInputDeviceRequest(DeviceIntPtr pDev)
|
|||
LocalDevicePtr pInfo = (LocalDevicePtr) pDev->public.devicePrivate;
|
||||
InputDriverPtr drv;
|
||||
IDevRec *idev;
|
||||
BOOL found;
|
||||
IDevPtr *it;
|
||||
|
||||
if (pInfo) /* need to get these before RemoveDevice */
|
||||
{
|
||||
|
@ -464,10 +466,18 @@ DeleteInputDeviceRequest(DeviceIntPtr pDev)
|
|||
else
|
||||
xf86DeleteInput(pInfo, 0);
|
||||
|
||||
xfree(idev->driver);
|
||||
xfree(idev->identifier);
|
||||
xf86optionListFree(idev->commonOptions);
|
||||
xfree(idev);
|
||||
/* devices added through HAL aren't in the config layout */
|
||||
it = xf86ConfigLayout.inputs;
|
||||
while(*it && *it != idev)
|
||||
it++;
|
||||
|
||||
if (!(*it)) /* end of list, not in the layout */
|
||||
{
|
||||
xfree(idev->driver);
|
||||
xfree(idev->identifier);
|
||||
xf86optionListFree(idev->commonOptions);
|
||||
xfree(idev);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -997,6 +997,54 @@ xf86DefaultScreenLimits (ScrnInfoPtr scrn, int *widthp, int *heightp,
|
|||
|
||||
#define POSITION_UNSET -100000
|
||||
|
||||
/*
|
||||
* check if the user configured any outputs at all
|
||||
* with either a position or a relative setting or a mode.
|
||||
*/
|
||||
static Bool
|
||||
xf86UserConfiguredOutputs(ScrnInfoPtr scrn, DisplayModePtr *modes)
|
||||
{
|
||||
xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn);
|
||||
int o;
|
||||
Bool user_conf = FALSE;
|
||||
|
||||
for (o = 0; o < config->num_output; o++)
|
||||
{
|
||||
xf86OutputPtr output = config->output[o];
|
||||
char *position;
|
||||
char *relative_name;
|
||||
OutputOpts relation;
|
||||
int r;
|
||||
static const OutputOpts relations[] = {
|
||||
OPTION_BELOW, OPTION_RIGHT_OF, OPTION_ABOVE, OPTION_LEFT_OF
|
||||
};
|
||||
|
||||
position = xf86GetOptValString (output->options,
|
||||
OPTION_POSITION);
|
||||
if (position)
|
||||
user_conf = TRUE;
|
||||
|
||||
relation = 0;
|
||||
relative_name = NULL;
|
||||
for (r = 0; r < 4; r++)
|
||||
{
|
||||
relation = relations[r];
|
||||
relative_name = xf86GetOptValString (output->options,
|
||||
relation);
|
||||
if (relative_name)
|
||||
break;
|
||||
}
|
||||
if (relative_name)
|
||||
user_conf = TRUE;
|
||||
|
||||
modes[o] = xf86OutputHasUserPreferredMode(output);
|
||||
if (modes[o])
|
||||
user_conf = TRUE;
|
||||
}
|
||||
|
||||
return user_conf;
|
||||
}
|
||||
|
||||
static Bool
|
||||
xf86InitialOutputPositions (ScrnInfoPtr scrn, DisplayModePtr *modes)
|
||||
{
|
||||
|
@ -1984,6 +2032,9 @@ xf86TargetUserpref(ScrnInfoPtr scrn, xf86CrtcConfigPtr config,
|
|||
{
|
||||
int o;
|
||||
|
||||
if (xf86UserConfiguredOutputs(scrn, modes))
|
||||
return xf86TargetFallback(scrn, config, modes, enabled, width, height);
|
||||
|
||||
for (o = -1; nextEnabledOutput(config, enabled, &o); )
|
||||
if (xf86OutputHasUserPreferredMode(config->output[o]))
|
||||
return
|
||||
|
|
|
@ -50,6 +50,7 @@ sdk_HEADERS = \
|
|||
validate.h \
|
||||
window.h \
|
||||
windowstr.h \
|
||||
xkbfile.h \
|
||||
xkbsrv.h \
|
||||
xkbstr.h \
|
||||
xorg-server.h
|
||||
|
@ -58,4 +59,4 @@ endif
|
|||
AM_CFLAGS = $(DIX_CFLAGS)
|
||||
|
||||
EXTRA_DIST = $(sdk_HEADERS) do-not-use-config.h dix-config.h xorg-config.h \
|
||||
xkb-config.h xkbfile.h
|
||||
xkb-config.h
|
||||
|
|
|
@ -301,7 +301,7 @@ SetPictureFilter (PicturePtr pPicture, char *name, int len, xFixed *params, int
|
|||
if (nparams != pPicture->filter_nparams)
|
||||
{
|
||||
new_params = xalloc (nparams * sizeof (xFixed));
|
||||
if (!new_params)
|
||||
if (!new_params && nparams)
|
||||
return BadAlloc;
|
||||
xfree (pPicture->filter_params);
|
||||
pPicture->filter_params = new_params;
|
||||
|
|
|
@ -352,7 +352,9 @@ XkbControlsPtr ctrls;
|
|||
XkbSendAccessXNotify(keybd,&ev);
|
||||
if (XkbAX_NeedFeedback(ctrls,XkbAX_SKAcceptFBMask))
|
||||
XkbDDXAccessXBeep(keybd,_BEEP_SLOW_ACCEPT,XkbSlowKeysMask);
|
||||
AccessXKeyboardEvent(keybd,KeyPress,xkbi->slowKey,False);
|
||||
AccessXKeyboardEvent(keybd,
|
||||
(keybd == inputInfo.keyboard) ? KeyPress : DeviceKeyPress,
|
||||
xkbi->slowKey,False);
|
||||
/* check for magic sequences */
|
||||
if ((ctrls->enabled_ctrls&XkbAccessXKeysMask) &&
|
||||
((sym[0]==XK_Shift_R)||(sym[0]==XK_Shift_L)))
|
||||
|
|
Loading…
Reference in New Issue
Block a user