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
)
35 REQUEST(xXFixesChangeSaveSetReq
);
37 REQUEST_SIZE_MATCH(xXFixesChangeSaveSetReq
);
38 result
= dixLookupWindow(&pWin
, stuff
->window
, client
, DixReadAccess
);
39 if (result
!= Success
)
41 if (client
->clientAsMask
== (CLIENT_BITS(pWin
->drawable
.id
)))
43 if ((stuff
->mode
!= SetModeInsert
) && (stuff
->mode
!= SetModeDelete
))
45 client
->errorValue
= stuff
->mode
;
48 if ((stuff
->target
!= SaveSetNearest
) && (stuff
->target
!= SaveSetRoot
))
50 client
->errorValue
= stuff
->target
;
53 if ((stuff
->map
!= SaveSetMap
) && (stuff
->map
!= SaveSetUnmap
))
55 client
->errorValue
= stuff
->map
;
58 toRoot
= (stuff
->target
== SaveSetRoot
);
59 remap
= (stuff
->map
== SaveSetMap
);
60 result
= AlterSaveSetForClient(client
, pWin
, stuff
->mode
, toRoot
, remap
);
61 if (client
->noClientException
!= Success
)
62 return(client
->noClientException
);
68 SProcXFixesChangeSaveSet(ClientPtr client
)
71 REQUEST(xXFixesChangeSaveSetReq
);
73 swaps(&stuff
->length
, n
);
74 swapl(&stuff
->window
, n
);
75 return ProcXFixesChangeSaveSet(client
);