diff --git a/Xext/xace.h b/Xext/xace.h index 590c5d757..b9c81accf 100644 --- a/Xext/xace.h +++ b/Xext/xace.h @@ -25,12 +25,13 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define XACE_MAJOR_VERSION 2 #define XACE_MINOR_VERSION 0 +#include "dix/selection_priv.h" + #include "extnsionst.h" #include "pixmap.h" #include "region.h" #include "window.h" #include "property.h" -#include "selection.h" /* Default window background */ #define XaceBackgroundNoneState(w) ((w)->forcedBG ? BackgroundPixel : None) diff --git a/Xext/xacestr.h b/Xext/xacestr.h index 8b1b57e36..7166bf2e1 100644 --- a/Xext/xacestr.h +++ b/Xext/xacestr.h @@ -20,13 +20,14 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #ifndef _XACESTR_H #define _XACESTR_H +#include "dix/selection_priv.h" + #include "dix.h" #include "resource.h" #include "extnsionst.h" #include "window.h" #include "input.h" #include "property.h" -#include "selection.h" #include "xace.h" /* XACE_RESOURCE_ACCESS */ diff --git a/Xext/xselinux_ext.c b/Xext/xselinux_ext.c index e6507a611..94b7458a9 100644 --- a/Xext/xselinux_ext.c +++ b/Xext/xselinux_ext.c @@ -21,9 +21,9 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "dix/dix_priv.h" #include "dix/property_priv.h" +#include "dix/selection_priv.h" #include "miext/extinit_priv.h" -#include "selection.h" #include "inputstr.h" #include "windowstr.h" #include "propertyst.h" diff --git a/Xext/xselinux_hooks.c b/Xext/xselinux_hooks.c index 51cf21685..7a9d2edc8 100644 --- a/Xext/xselinux_hooks.c +++ b/Xext/xselinux_hooks.c @@ -35,9 +35,9 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "dix/input_priv.h" #include "dix/registry_priv.h" #include "dix/resource_priv.h" +#include "dix/selection_priv.h" #include "os/client_priv.h" -#include "selection.h" #include "inputstr.h" #include "scrnintstr.h" #include "windowstr.h" diff --git a/damageext/damageextint.h b/damageext/damageextint.h index 7a7096d27..a7e521dd6 100644 --- a/damageext/damageextint.h +++ b/damageext/damageextint.h @@ -29,13 +29,15 @@ #include #include +#include + +#include "dix/selection_priv.h" + #include "misc.h" #include "os.h" #include "dixstruct.h" #include "extnsionst.h" -#include #include "windowstr.h" -#include "selection.h" #include "scrnintstr.h" #include "damage.h" #include "xfixes.h" diff --git a/dix/dispatch.c b/dix/dispatch.c index 63ab65553..1528ecb85 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -111,6 +111,7 @@ Equipment Corporation. #include "dix/registry_priv.h" #include "dix/resource_priv.h" #include "dix/screenint_priv.h" +#include "dix/selection_priv.h" #include "dix/window_priv.h" #include "include/resource.h" #include "miext/extinit_priv.h" @@ -123,7 +124,6 @@ Equipment Corporation. #include "windowstr.h" #include "dixfontstr.h" #include "gcstruct.h" -#include "selection.h" #include "cursorstr.h" #include "scrnintstr.h" #include "servermd.h" diff --git a/dix/main.c b/dix/main.c index 88463470e..d855fe659 100644 --- a/dix/main.c +++ b/dix/main.c @@ -92,6 +92,7 @@ Equipment Corporation. #include "dix/input_priv.h" #include "dix/gc_priv.h" #include "dix/registry_priv.h" +#include "dix/selection_priv.h" #include "os/audit.h" #include "os/auth.h" #include "os/client_priv.h" @@ -110,7 +111,6 @@ Equipment Corporation. #include "gcstruct.h" #include "extension.h" #include "cursorstr.h" -#include "selection.h" #include "servermd.h" #include "dixfont.h" #include "extnsionst.h" diff --git a/dix/selection.c b/dix/selection.c index ada2ba68b..7425b42c5 100644 --- a/dix/selection.c +++ b/dix/selection.c @@ -47,11 +47,11 @@ SOFTWARE. #include #include "dix/dix_priv.h" +#include "dix/selection_priv.h" #include "windowstr.h" #include "dixstruct.h" #include "dispatch.h" -#include "selection.h" #include "xace.h" /***************************************************************** diff --git a/dix/selection_priv.h b/dix/selection_priv.h new file mode 100644 index 000000000..3eea9413e --- /dev/null +++ b/dix/selection_priv.h @@ -0,0 +1,51 @@ +/* SPDX-License-Identifier: MIT OR X11 + * + * Copyright © 2024 Enrico Weigelt, metux IT consult + */ + +#ifndef _XSERVER_DIX_SELECTION_PRIV_H +#define _XSERVER_DIX_SELECTION_PRIV_H + +#include +#include + +#include "include/dixstruct.h" +#include "include/privates.h" + +typedef struct _Selection { + Atom selection; + TimeStamp lastTimeChanged; + Window window; + WindowPtr pWin; + ClientPtr client; + struct _Selection *next; + PrivateRec *devPrivates; +} Selection; + +typedef enum { + SelectionSetOwner, + SelectionWindowDestroy, + SelectionClientClose +} SelectionCallbackKind; + +typedef struct { + struct _Selection *selection; + ClientPtr client; + SelectionCallbackKind kind; +} SelectionInfoRec; + + +extern Selection *CurrentSelections; + +extern CallbackListPtr SelectionCallback; + +int dixLookupSelection(Selection **result, + Atom name, + ClientPtr client, + Mask access_mode); + +void InitSelections(void); +void DeleteWindowFromAnySelections(WindowPtr pWin); +void DeleteClientFromAnySelections(ClientPtr client); + +#endif /* _XSERVER_DIX_SELECTION_PRIV_H */ diff --git a/dix/window.c b/dix/window.c index bad5f5de8..013fc5ceb 100644 --- a/dix/window.c +++ b/dix/window.c @@ -106,6 +106,7 @@ Equipment Corporation. #include "dix/input_priv.h" #include "dix/property_priv.h" #include "dix/resource_priv.h" +#include "dix/selection_priv.h" #include "dix/window_priv.h" #include "mi/mi_priv.h" /* miPaintWindow */ #include "os/auth.h" @@ -130,7 +131,6 @@ Equipment Corporation. #include "mivalidate.h" #include "globals.h" #include "compint.h" -#include "selection.h" #include "inpututils.h" #include "privates.h" #include "xace.h" diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c index 9468fe6ce..99cc68010 100644 --- a/hw/xwayland/xwayland.c +++ b/hw/xwayland/xwayland.c @@ -37,6 +37,8 @@ #include "dix/dix_priv.h" #include "dix/screenint_priv.h" +#include "dix/selection_priv.h" +#include "os/auth.h" #include "os/cmdline.h" #include "os/client_priv.h" #include "os/ddx_priv.h" @@ -44,7 +46,6 @@ #include "os/osdep.h" #include "os/xserver_poll.h" -#include #include #include #include @@ -56,8 +57,6 @@ #include #include "extinit.h" -#include "os/auth.h" - #include "xwayland-screen.h" #include "xwayland-vidmode.h" diff --git a/include/selection.h b/include/selection.h deleted file mode 100644 index f4bf282c5..000000000 --- a/include/selection.h +++ /dev/null @@ -1,98 +0,0 @@ -/*********************************************************** - -Copyright 1987, 1998 The Open Group - -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. - -The above copyright notice and this permission notice 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 -OPEN GROUP 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. - -Except as contained in this notice, the name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group. - -Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. - - All Rights Reserved - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -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 Digital not be -used in advertising or publicity pertaining to distribution of the -software without specific, written prior permission. - -DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING -ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL -DIGITAL 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. - -******************************************************************/ - -#ifndef SELECTION_H -#define SELECTION_H 1 - -#include "dixstruct.h" -#include "privates.h" - -/* - * Selection data structures - */ - -typedef struct _Selection { - Atom selection; - TimeStamp lastTimeChanged; - Window window; - WindowPtr pWin; - ClientPtr client; - struct _Selection *next; - PrivateRec *devPrivates; -} Selection; - -/* - * Selection API - */ - -int dixLookupSelection(Selection ** result, Atom name, - ClientPtr client, Mask access_mode); - -extern Selection *CurrentSelections; - -extern CallbackListPtr SelectionCallback; - -typedef enum { - SelectionSetOwner, - SelectionWindowDestroy, - SelectionClientClose -} SelectionCallbackKind; - -typedef struct { - struct _Selection *selection; - ClientPtr client; - SelectionCallbackKind kind; -} SelectionInfoRec; - -/* - * Selection server internals - */ - -void InitSelections(void); -void DeleteWindowFromAnySelections(WindowPtr pWin); -void DeleteClientFromAnySelections(ClientPtr client); - -#endif /* SELECTION_H */ diff --git a/xfixes/xfixesint.h b/xfixes/xfixesint.h index 54cb3829f..6e606d00a 100644 --- a/xfixes/xfixesint.h +++ b/xfixes/xfixesint.h @@ -51,13 +51,15 @@ #include #include +#include + +#include "dix/selection_priv.h" + #include "misc.h" #include "os.h" #include "dixstruct.h" #include "extnsionst.h" -#include #include "windowstr.h" -#include "selection.h" #include "xfixes.h" extern int XFixesEventBase;