2 * Copyright © 2002 Keith Packard
4 * Permission to use, copy, modify, distribute, and sell this software and its
5 * documentation for any purpose is hereby granted without fee, provided that
6 * the above copyright notice appear in all copies and that both that
7 * copyright notice and this permission notice appear in supporting
8 * documentation, and that the name of Keith Packard not be used in
9 * advertising or publicity pertaining to distribution of the software without
10 * specific, written prior permission. Keith Packard makes no
11 * representations about the suitability of this software for any purpose. It
12 * is provided "as is" without express or implied warranty.
14 * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
16 * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
18 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
19 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20 * PERFORMANCE OF THIS SOFTWARE.
23 #ifdef HAVE_DIX_CONFIG_H
24 #include <dix-config.h>
27 #include "xfixesint.h"
30 ProcXFixesChangeSaveSet(ClientPtr client
)
36 REQUEST(xXFixesChangeSaveSetReq
);
38 REQUEST_SIZE_MATCH(xXFixesChangeSaveSetReq
);
39 result
= dixLookupWindow(&pWin
, stuff
->window
, client
, DixManageAccess
);
40 if (result
!= Success
)
42 if (client
->clientAsMask
== (CLIENT_BITS(pWin
->drawable
.id
)))
44 if ((stuff
->mode
!= SetModeInsert
) && (stuff
->mode
!= SetModeDelete
)) {
45 client
->errorValue
= stuff
->mode
;
48 if ((stuff
->target
!= SaveSetNearest
) && (stuff
->target
!= SaveSetRoot
)) {
49 client
->errorValue
= stuff
->target
;
52 if ((stuff
->map
!= SaveSetMap
) && (stuff
->map
!= SaveSetUnmap
)) {
53 client
->errorValue
= stuff
->map
;
56 toRoot
= (stuff
->target
== SaveSetRoot
);
57 map
= (stuff
->map
== SaveSetMap
);
58 return AlterSaveSetForClient(client
, pWin
, stuff
->mode
, toRoot
, map
);
62 SProcXFixesChangeSaveSet(ClientPtr client
)
64 REQUEST(xXFixesChangeSaveSetReq
);
66 swaps(&stuff
->length
);
67 swapl(&stuff
->window
);
68 return (*ProcXFixesVector
[stuff
->xfixesReqType
]) (client
);