Update to xserver 21.1.0

This commit is contained in:
matthieu
2021-11-11 09:03:02 +00:00
parent 6580fb3cad
commit e086cf5adf
767 changed files with 23234 additions and 94868 deletions

View File

@@ -4,6 +4,7 @@ AM_CFLAGS = $(DIX_CFLAGS)
libxfixes_la_SOURCES = \
cursor.c \
disconnect.c \
region.c \
saveset.c \
select.c \

View File

@@ -68,14 +68,13 @@ CONFIG_HEADER = $(top_builddir)/include/do-not-use-config.h \
$(top_builddir)/include/xorg-config.h \
$(top_builddir)/include/xkb-config.h \
$(top_builddir)/include/xwin-config.h \
$(top_builddir)/include/xwayland-config.h \
$(top_builddir)/include/version-config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
LTLIBRARIES = $(noinst_LTLIBRARIES)
libxfixes_la_LIBADD =
am_libxfixes_la_OBJECTS = cursor.lo region.lo saveset.lo select.lo \
xfixes.lo
am_libxfixes_la_OBJECTS = cursor.lo disconnect.lo region.lo saveset.lo \
select.lo xfixes.lo
libxfixes_la_OBJECTS = $(am_libxfixes_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -142,8 +141,6 @@ AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BASE_CFLAGS = @BASE_CFLAGS@
BASE_FONT_PATH = @BASE_FONT_PATH@
BUILD_DATE = @BUILD_DATE@
BUILD_TIME = @BUILD_TIME@
BUNDLE_ID_PREFIX = @BUNDLE_ID_PREFIX@
BUNDLE_VERSION = @BUNDLE_VERSION@
BUNDLE_VERSION_STRING = @BUNDLE_VERSION_STRING@
@@ -175,14 +172,6 @@ DIX_CFLAGS = @DIX_CFLAGS@
DIX_LIB = @DIX_LIB@
DLLTOOL = @DLLTOOL@
DLOPEN_LIBS = @DLOPEN_LIBS@
DMXEXAMPLES_DEP_CFLAGS = @DMXEXAMPLES_DEP_CFLAGS@
DMXEXAMPLES_DEP_LIBS = @DMXEXAMPLES_DEP_LIBS@
DMXMODULES_CFLAGS = @DMXMODULES_CFLAGS@
DMXMODULES_LIBS = @DMXMODULES_LIBS@
DMXXIEXAMPLES_DEP_CFLAGS = @DMXXIEXAMPLES_DEP_CFLAGS@
DMXXIEXAMPLES_DEP_LIBS = @DMXXIEXAMPLES_DEP_LIBS@
DMXXMUEXAMPLES_DEP_CFLAGS = @DMXXMUEXAMPLES_DEP_CFLAGS@
DMXXMUEXAMPLES_DEP_LIBS = @DMXXMUEXAMPLES_DEP_LIBS@
DOT = @DOT@
DOXYGEN = @DOXYGEN@
DRI2PROTO_CFLAGS = @DRI2PROTO_CFLAGS@
@@ -256,6 +245,8 @@ LIBSHA1_LIBS = @LIBSHA1_LIBS@
LIBTOOL = @LIBTOOL@
LIBUNWIND_CFLAGS = @LIBUNWIND_CFLAGS@
LIBUNWIND_LIBS = @LIBUNWIND_LIBS@
LIBXCVT_CFLAGS = @LIBXCVT_CFLAGS@
LIBXCVT_LIBS = @LIBXCVT_LIBS@
LIB_MAN_DIR = @LIB_MAN_DIR@
LIB_MAN_SUFFIX = @LIB_MAN_SUFFIX@
LIPO = @LIPO@
@@ -308,7 +299,6 @@ RANLIB = @RANLIB@
RAWCPP = @RAWCPP@
RAWCPPFLAGS = @RAWCPPFLAGS@
RELEASE_DATE = @RELEASE_DATE@
SCANNER_ARG = @SCANNER_ARG@
SDK_REQUIRED_MODULES = @SDK_REQUIRED_MODULES@
SED = @SED@
SELINUX_CFLAGS = @SELINUX_CFLAGS@
@@ -332,29 +322,13 @@ UDEV_LIBS = @UDEV_LIBS@
UTILS_SYS_LIBS = @UTILS_SYS_LIBS@
VENDOR_NAME_SHORT = @VENDOR_NAME_SHORT@
VERSION = @VERSION@
WAYLAND_EGLSTREAM_CFLAGS = @WAYLAND_EGLSTREAM_CFLAGS@
WAYLAND_EGLSTREAM_DATADIR = @WAYLAND_EGLSTREAM_DATADIR@
WAYLAND_EGLSTREAM_LIBS = @WAYLAND_EGLSTREAM_LIBS@
WAYLAND_PROTOCOLS_DATADIR = @WAYLAND_PROTOCOLS_DATADIR@
WAYLAND_SCANNER = @WAYLAND_SCANNER@
WAYLAND_SCANNER_CFLAGS = @WAYLAND_SCANNER_CFLAGS@
WAYLAND_SCANNER_LIBS = @WAYLAND_SCANNER_LIBS@
WINDOWSDRI_CFLAGS = @WINDOWSDRI_CFLAGS@
WINDOWSDRI_LIBS = @WINDOWSDRI_LIBS@
WINDOWSWM_CFLAGS = @WINDOWSWM_CFLAGS@
WINDOWSWM_LIBS = @WINDOWSWM_LIBS@
WINDRES = @WINDRES@
X11EXAMPLES_DEP_CFLAGS = @X11EXAMPLES_DEP_CFLAGS@
X11EXAMPLES_DEP_LIBS = @X11EXAMPLES_DEP_LIBS@
XCONFIGDIR = @XCONFIGDIR@
XCONFIGFILE = @XCONFIGFILE@
XDMCP_CFLAGS = @XDMCP_CFLAGS@
XDMCP_LIBS = @XDMCP_LIBS@
XDMXCONFIG_DEP_CFLAGS = @XDMXCONFIG_DEP_CFLAGS@
XDMXCONFIG_DEP_LIBS = @XDMXCONFIG_DEP_LIBS@
XDMX_CFLAGS = @XDMX_CFLAGS@
XDMX_LIBS = @XDMX_LIBS@
XDMX_SYS_LIBS = @XDMX_SYS_LIBS@
XEPHYR_CFLAGS = @XEPHYR_CFLAGS@
XEPHYR_INCS = @XEPHYR_INCS@
XEPHYR_LIBS = @XEPHYR_LIBS@
@@ -392,8 +366,6 @@ XPBPROXY_LIBS = @XPBPROXY_LIBS@
XQUARTZ_LIBS = @XQUARTZ_LIBS@
XQUARTZ_SPARKLE = @XQUARTZ_SPARKLE@
XQUARTZ_SPARKLE_FEED_URL = @XQUARTZ_SPARKLE_FEED_URL@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@
XSERVERCFLAGS_LIBS = @XSERVERCFLAGS_LIBS@
XSERVERLIBS_CFLAGS = @XSERVERLIBS_CFLAGS@
@@ -404,14 +376,8 @@ XSHMFENCE_CFLAGS = @XSHMFENCE_CFLAGS@
XSHMFENCE_LIBS = @XSHMFENCE_LIBS@
XSLTPROC = @XSLTPROC@
XSL_STYLESHEET = @XSL_STYLESHEET@
XTSTEXAMPLES_DEP_CFLAGS = @XTSTEXAMPLES_DEP_CFLAGS@
XTSTEXAMPLES_DEP_LIBS = @XTSTEXAMPLES_DEP_LIBS@
XVFB_LIBS = @XVFB_LIBS@
XVFB_SYS_LIBS = @XVFB_SYS_LIBS@
XWAYLANDMODULES_CFLAGS = @XWAYLANDMODULES_CFLAGS@
XWAYLANDMODULES_LIBS = @XWAYLANDMODULES_LIBS@
XWAYLAND_LIBS = @XWAYLAND_LIBS@
XWAYLAND_SYS_LIBS = @XWAYLAND_SYS_LIBS@
XWINMODULES_CFLAGS = @XWINMODULES_CFLAGS@
XWINMODULES_LIBS = @XWINMODULES_LIBS@
XWIN_LIBS = @XWIN_LIBS@
@@ -488,6 +454,7 @@ noinst_LTLIBRARIES = libxfixes.la
AM_CFLAGS = $(DIX_CFLAGS)
libxfixes_la_SOURCES = \
cursor.c \
disconnect.c \
region.c \
saveset.c \
select.c \
@@ -550,6 +517,7 @@ distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cursor.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/disconnect.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/region.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/saveset.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/select.Plo@am__quote@

View File

@@ -670,7 +670,7 @@ ReplaceCursor(CursorPtr pCursor, TestCursorFunc testCursor, void *closure)
ReplaceCursorLookup, (void *) &rcl);
}
}
/* this "knows" that WindowHasNewCursor doesn't depend on it's argument */
/* this "knows" that WindowHasNewCursor doesn't depend on its argument */
WindowHasNewCursor(screenInfo.screens[0]->root);
}

147
xserver/xfixes/disconnect.c Normal file
View File

@@ -0,0 +1,147 @@
/*
* Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
* Copyright 2010 Red Hat, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
* Copyright © 2002 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
* the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Keith Packard not be used in
* advertising or publicity pertaining to distribution of the software without
* specific, written prior permission. Keith Packard makes no
* representations about the suitability of this software for any purpose. It
* is provided "as is" without express or implied warranty.
*
* KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
* EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
#include "xfixesint.h"
#include "opaque.h"
static DevPrivateKeyRec ClientDisconnectPrivateKeyRec;
#define ClientDisconnectPrivateKey (&ClientDisconnectPrivateKeyRec)
typedef struct _ClientDisconnect {
int disconnect_mode;
} ClientDisconnectRec, *ClientDisconnectPtr;
#define GetClientDisconnect(s) \
((ClientDisconnectPtr) dixLookupPrivate(&(s)->devPrivates, \
ClientDisconnectPrivateKey))
int
ProcXFixesSetClientDisconnectMode(ClientPtr client)
{
ClientDisconnectPtr pDisconnect = GetClientDisconnect(client);
REQUEST(xXFixesSetClientDisconnectModeReq);
pDisconnect->disconnect_mode = stuff->disconnect_mode;
return Success;
}
int _X_COLD
SProcXFixesSetClientDisconnectMode(ClientPtr client)
{
REQUEST(xXFixesSetClientDisconnectModeReq);
swaps(&stuff->length);
REQUEST_AT_LEAST_SIZE(xXFixesSetClientDisconnectModeReq);
swapl(&stuff->disconnect_mode);
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
}
int
ProcXFixesGetClientDisconnectMode(ClientPtr client)
{
ClientDisconnectPtr pDisconnect = GetClientDisconnect(client);
xXFixesGetClientDisconnectModeReply reply;
REQUEST_SIZE_MATCH(xXFixesGetClientDisconnectModeReq);
reply = (xXFixesGetClientDisconnectModeReply) {
.type = X_Reply,
.sequenceNumber = client->sequence,
.length = 0,
.disconnect_mode = pDisconnect->disconnect_mode,
};
if (client->swapped) {
swaps(&reply.sequenceNumber);
swapl(&reply.disconnect_mode);
}
WriteToClient(client, sizeof(xXFixesGetClientDisconnectModeReply), &reply);
return Success;
}
int _X_COLD
SProcXFixesGetClientDisconnectMode(ClientPtr client)
{
REQUEST(xXFixesGetClientDisconnectModeReq);
swaps(&stuff->length);
REQUEST_SIZE_MATCH(xXFixesGetClientDisconnectModeReq);
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
}
Bool
XFixesShouldDisconnectClient(ClientPtr client)
{
ClientDisconnectPtr pDisconnect = GetClientDisconnect(client);
if (!pDisconnect)
return FALSE;
if (dispatchExceptionAtReset & DE_TERMINATE)
return (pDisconnect->disconnect_mode & XFixesClientDisconnectFlagTerminate);
return FALSE;
}
Bool
XFixesClientDisconnectInit(void)
{
if (!dixRegisterPrivateKey(&ClientDisconnectPrivateKeyRec,
PRIVATE_CLIENT, sizeof(ClientDisconnectRec)))
return FALSE;
return TRUE;
}

View File

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
* Copyright 2010 Red Hat, Inc.
* Copyright 2010, 2021 Red Hat, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -61,6 +61,7 @@ static DevPrivateKeyRec XFixesClientPrivateKeyRec;
static int
ProcXFixesQueryVersion(ClientPtr client)
{
int major, minor;
XFixesClientPtr pXFixesClient = GetXFixesClient(client);
xXFixesQueryVersionReply rep = {
.type = X_Reply,
@@ -75,16 +76,17 @@ ProcXFixesQueryVersion(ClientPtr client)
if (version_compare(stuff->majorVersion, stuff->minorVersion,
SERVER_XFIXES_MAJOR_VERSION,
SERVER_XFIXES_MINOR_VERSION) < 0) {
rep.majorVersion = stuff->majorVersion;
rep.minorVersion = stuff->minorVersion;
major = max(pXFixesClient->major_version, stuff->majorVersion);
minor = stuff->minorVersion;
}
else {
rep.majorVersion = SERVER_XFIXES_MAJOR_VERSION;
rep.minorVersion = SERVER_XFIXES_MINOR_VERSION;
major = SERVER_XFIXES_MAJOR_VERSION;
minor = SERVER_XFIXES_MINOR_VERSION;
}
pXFixesClient->major_version = rep.majorVersion;
pXFixesClient->minor_version = rep.minorVersion;
pXFixesClient->major_version = major;
rep.majorVersion = min(stuff->majorVersion, major);
rep.minorVersion = minor;
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
@@ -103,6 +105,7 @@ static const int version_requests[] = {
X_XFixesExpandRegion, /* Version 3 */
X_XFixesShowCursor, /* Version 4 */
X_XFixesDestroyPointerBarrier, /* Version 5 */
X_XFixesGetClientDisconnectMode, /* Version 6 */
};
int (*ProcXFixesVector[XFixesNumberRequests]) (ClientPtr) = {
@@ -139,7 +142,10 @@ int (*ProcXFixesVector[XFixesNumberRequests]) (ClientPtr) = {
/*************** Version 4 ****************/
ProcXFixesHideCursor, ProcXFixesShowCursor,
/*************** Version 5 ****************/
ProcXFixesCreatePointerBarrier, ProcXFixesDestroyPointerBarrier,};
ProcXFixesCreatePointerBarrier, ProcXFixesDestroyPointerBarrier,
/*************** Version 6 ****************/
ProcXFixesSetClientDisconnectMode, ProcXFixesGetClientDisconnectMode,
};
static int
ProcXFixesDispatch(ClientPtr client)
@@ -200,13 +206,20 @@ static int (*SProcXFixesVector[XFixesNumberRequests]) (ClientPtr) = {
/*************** Version 4 ****************/
SProcXFixesHideCursor, SProcXFixesShowCursor,
/*************** Version 5 ****************/
SProcXFixesCreatePointerBarrier, SProcXFixesDestroyPointerBarrier,};
SProcXFixesCreatePointerBarrier, SProcXFixesDestroyPointerBarrier,
/*************** Version 6 ****************/
SProcXFixesSetClientDisconnectMode, SProcXFixesGetClientDisconnectMode,
};
static _X_COLD int
SProcXFixesDispatch(ClientPtr client)
{
REQUEST(xXFixesReq);
if (stuff->xfixesReqType >= XFixesNumberRequests)
XFixesClientPtr pXFixesClient = GetXFixesClient(client);
if (pXFixesClient->major_version >= ARRAY_SIZE(version_requests))
return BadRequest;
if (stuff->xfixesReqType > version_requests[pXFixesClient->major_version])
return BadRequest;
return (*SProcXFixesVector[stuff->xfixesReqType]) (client);
}
@@ -220,7 +233,10 @@ XFixesExtensionInit(void)
(&XFixesClientPrivateKeyRec, PRIVATE_CLIENT, sizeof(XFixesClientRec)))
return;
if (XFixesSelectionInit() && XFixesCursorInit() && XFixesRegionInit() &&
if (XFixesSelectionInit() &&
XFixesCursorInit() &&
XFixesRegionInit() &&
XFixesClientDisconnectInit() &&
(extEntry = AddExtension(XFIXES_NAME, XFixesNumberEvents,
XFixesNumberErrors,
ProcXFixesDispatch, SProcXFixesDispatch,

View File

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
* Copyright 2010 Red Hat, Inc.
* Copyright 2010, 2021 Red Hat, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -64,7 +64,6 @@ extern int XFixesEventBase;
typedef struct _XFixesClient {
CARD32 major_version;
CARD32 minor_version;
} XFixesClientRec, *XFixesClientPtr;
#define GetXFixesClient(pClient) ((XFixesClientPtr)dixLookupPrivate(&(pClient)->devPrivates, XFixesClientPrivateKey))
@@ -290,6 +289,26 @@ int
int
SProcXFixesDestroyPointerBarrier(ClientPtr client);
/* Version 6 */
Bool
XFixesClientDisconnectInit(void);
int
ProcXFixesSetClientDisconnectMode(ClientPtr client);
int
ProcXFixesGetClientDisconnectMode(ClientPtr client);
int
SProcXFixesSetClientDisconnectMode(ClientPtr client);
int
SProcXFixesGetClientDisconnectMode(ClientPtr client);
Bool
XFixesShouldDisconnectClient(ClientPtr client);
/* Xinerama */
#ifdef PANORAMIX
extern int (*PanoramiXSaveXFixesVector[XFixesNumberRequests]) (ClientPtr);