xserver

xserver with xephyr scale patch
git clone https://git.neptards.moe/u3shit/xserver.git
Log | Files | Refs | README | LICENSE

saveset.c (2524B)


      1 /*
      2  * Copyright © 2002 Keith Packard
      3  *
      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.
     13  *
     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.
     21  */
     22 
     23 #ifdef HAVE_DIX_CONFIG_H
     24 #include <dix-config.h>
     25 #endif
     26 
     27 #include "xfixesint.h"
     28 
     29 int
     30 ProcXFixesChangeSaveSet(ClientPtr client)
     31 {
     32     Bool toRoot, map;
     33     int result;
     34     WindowPtr pWin;
     35 
     36     REQUEST(xXFixesChangeSaveSetReq);
     37 
     38     REQUEST_SIZE_MATCH(xXFixesChangeSaveSetReq);
     39     result = dixLookupWindow(&pWin, stuff->window, client, DixManageAccess);
     40     if (result != Success)
     41         return result;
     42     if (client->clientAsMask == (CLIENT_BITS(pWin->drawable.id)))
     43         return BadMatch;
     44     if ((stuff->mode != SetModeInsert) && (stuff->mode != SetModeDelete)) {
     45         client->errorValue = stuff->mode;
     46         return BadValue;
     47     }
     48     if ((stuff->target != SaveSetNearest) && (stuff->target != SaveSetRoot)) {
     49         client->errorValue = stuff->target;
     50         return BadValue;
     51     }
     52     if ((stuff->map != SaveSetMap) && (stuff->map != SaveSetUnmap)) {
     53         client->errorValue = stuff->map;
     54         return BadValue;
     55     }
     56     toRoot = (stuff->target == SaveSetRoot);
     57     map = (stuff->map == SaveSetMap);
     58     return AlterSaveSetForClient(client, pWin, stuff->mode, toRoot, map);
     59 }
     60 
     61 int _X_COLD
     62 SProcXFixesChangeSaveSet(ClientPtr client)
     63 {
     64     REQUEST(xXFixesChangeSaveSetReq);
     65     REQUEST_SIZE_MATCH(xXFixesChangeSaveSetReq);
     66 
     67     swaps(&stuff->length);
     68     swapl(&stuff->window);
     69     return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
     70 }