aboutsummaryrefslogtreecommitdiff
path: root/nxcompshad
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2015-07-08 16:16:40 +0200
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2015-12-28 13:15:24 +0100
commit433d8186588698ce6a435fbff5e9d40a37b78be9 (patch)
tree1f13c31901460fd31786b6d50b6c9841d25be99e /nxcompshad
parentf58006d932d907dc13d76084e9171de59ee27f16 (diff)
downloadnx-libs-433d8186588698ce6a435fbff5e9d40a37b78be9.tar.gz
nx-libs-433d8186588698ce6a435fbff5e9d40a37b78be9.tar.bz2
nx-libs-433d8186588698ce6a435fbff5e9d40a37b78be9.zip
Clear header file namespace separation (<X11/...> vs. <nx-X11/...>).
In the process of building nxagent against more and more system-wide installed X.org libraries, we come to the limit of including structs from this (bundled nx-X11) and that (system-wide X.Org) library. This commit introduces a clear namespace separation of headers provided by nx-X11 and headers provided by X.Org. This approach is only temporary as we want to drop all nx-X11 bundled libraries from nx-libs. However, for a while we need to make this separation clear and also ship some reduced fake X.Org headers that avoid pulling in libX* and libNX_X* symbols at the same time. This patch has been tested on Debian jessie and unstable and requires no overall testing on various distros and distro versions, as we finally will drop all libNX_X* libraries and build against X.org's client libs. For now, this hack eases our development / cleanup process.
Diffstat (limited to 'nxcompshad')
-rw-r--r--nxcompshad/Input.h2
-rw-r--r--nxcompshad/Manager.cpp6
-rw-r--r--nxcompshad/Manager.h2
-rw-r--r--nxcompshad/Regions.h4
-rw-r--r--nxcompshad/Shadow.h2
-rw-r--r--nxcompshad/Updater.cpp6
-rw-r--r--nxcompshad/Updater.h2
-rw-r--r--nxcompshad/Win.cpp2
-rw-r--r--nxcompshad/Win.h2
-rw-r--r--nxcompshad/X11.cpp8
-rw-r--r--nxcompshad/X11.h8
-rw-r--r--nxcompshad/X11/include/Xdamage_nxcompshad.h92
-rw-r--r--nxcompshad/X11/include/Xrandr_nxcompshad.h80
13 files changed, 194 insertions, 22 deletions
diff --git a/nxcompshad/Input.h b/nxcompshad/Input.h
index 6250e790b..88217c9b1 100644
--- a/nxcompshad/Input.h
+++ b/nxcompshad/Input.h
@@ -18,7 +18,7 @@
#ifndef Input_H
#define Input_H
-#include <X11/Xlib.h>
+#include <nx-X11/Xlib.h>
typedef struct Event
{
diff --git a/nxcompshad/Manager.cpp b/nxcompshad/Manager.cpp
index ba9260a13..3b5504a1f 100644
--- a/nxcompshad/Manager.cpp
+++ b/nxcompshad/Manager.cpp
@@ -15,9 +15,9 @@
/* */
/**************************************************************************/
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include <X11/keysym.h>
+#include <nx-X11/Xlib.h>
+#include <nx-X11/Xutil.h>
+#include <nx-X11/keysym.h>
#include <string.h>
#define PANIC
diff --git a/nxcompshad/Manager.h b/nxcompshad/Manager.h
index 267754906..56b7e0aa5 100644
--- a/nxcompshad/Manager.h
+++ b/nxcompshad/Manager.h
@@ -18,7 +18,7 @@
#ifndef UpdateManager_H
#define UpdateManager_H
-#include <X11/Xlib.h>
+#include <nx-X11/Xlib.h>
#include "Updater.h"
#include "Regions.h"
diff --git a/nxcompshad/Regions.h b/nxcompshad/Regions.h
index b9303dcb7..d46d11a72 100644
--- a/nxcompshad/Regions.h
+++ b/nxcompshad/Regions.h
@@ -18,8 +18,8 @@
#ifndef Region_H
#define Region_H
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
+#include <nx-X11/Xlib.h>
+#include <nx-X11/Xutil.h>
typedef struct {
short x1, x2, y1, y2;
diff --git a/nxcompshad/Shadow.h b/nxcompshad/Shadow.h
index e1eddb95c..99824b0aa 100644
--- a/nxcompshad/Shadow.h
+++ b/nxcompshad/Shadow.h
@@ -18,7 +18,7 @@
#ifndef Shadow_H
#define Shadow_H
-#include <X11/Xlib.h>
+#include <nx-X11/Xlib.h>
#define NXShadowCorrectColor(length, buffer) \
\
diff --git a/nxcompshad/Updater.cpp b/nxcompshad/Updater.cpp
index 245c6ce31..eee81bf16 100644
--- a/nxcompshad/Updater.cpp
+++ b/nxcompshad/Updater.cpp
@@ -15,9 +15,9 @@
/* */
/**************************************************************************/
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include <X11/keysym.h>
+#include <nx-X11/Xlib.h>
+#include <nx-X11/Xutil.h>
+#include <nx-X11/keysym.h>
#include <string.h>
#define PANIC
diff --git a/nxcompshad/Updater.h b/nxcompshad/Updater.h
index daa26c10b..cb8b15aa6 100644
--- a/nxcompshad/Updater.h
+++ b/nxcompshad/Updater.h
@@ -18,7 +18,7 @@
#ifndef Updater_H
#define Updater_H
-#include <X11/Xlib.h>
+#include <nx-X11/Xlib.h>
#include "Regions.h"
#include "Input.h"
diff --git a/nxcompshad/Win.cpp b/nxcompshad/Win.cpp
index 481cbcac0..77a9694bd 100644
--- a/nxcompshad/Win.cpp
+++ b/nxcompshad/Win.cpp
@@ -17,7 +17,7 @@
#if defined(__CYGWIN32__) || defined(WIN32)
-#include <X11/keysym.h>
+#include <nx-X11/keysym.h>
#define PANIC
#define WARNING
diff --git a/nxcompshad/Win.h b/nxcompshad/Win.h
index fe591ff02..1069fa9ee 100644
--- a/nxcompshad/Win.h
+++ b/nxcompshad/Win.h
@@ -20,7 +20,7 @@
#ifndef Win32Poller_H
#define Win32Poller_H
-//#include <X11/X.h>
+//#include <nx-X11/X.h>
#include <Windows.h>
#include <wingdi.h>
diff --git a/nxcompshad/X11.cpp b/nxcompshad/X11.cpp
index 2d1140f11..5a18e0a69 100644
--- a/nxcompshad/X11.cpp
+++ b/nxcompshad/X11.cpp
@@ -22,10 +22,10 @@
#undef TEST
#undef DEBUG
-#include <X11/Xlibint.h>
-#include <X11/Xproto.h>
-#include <X11/extensions/XTest.h>
-#include <X11/keysym.h>
+#include <nx-X11/Xlibint.h>
+#include <nx-X11/Xproto.h>
+#include <nx-X11/keysym.h>
+#include <nx-X11/extensions/XTest.h>
#include <string.h>
#include <sys/ipc.h>
#include <sys/shm.h>
diff --git a/nxcompshad/X11.h b/nxcompshad/X11.h
index 21275420c..d7b858100 100644
--- a/nxcompshad/X11.h
+++ b/nxcompshad/X11.h
@@ -18,10 +18,10 @@
#ifndef X11Poller_H
#define X11Poller_H
-#include <X11/Xlib.h>
-#include <X11/extensions/XShm.h>
-#include <X11/extensions/Xdamage.h>
-#include <X11/extensions/Xrandr.h>
+#include <nx-X11/Xlib.h>
+#include <nx-X11/extensions/XShm.h>
+#include "X11/include/Xdamage_nxcompshad.h"
+#include "X11/include/Xrandr_nxcompshad.h"
#include "Core.h"
diff --git a/nxcompshad/X11/include/Xdamage_nxcompshad.h b/nxcompshad/X11/include/Xdamage_nxcompshad.h
new file mode 100644
index 000000000..8e5e0fbbd
--- /dev/null
+++ b/nxcompshad/X11/include/Xdamage_nxcompshad.h
@@ -0,0 +1,92 @@
+/*
+ * Copyright © 2003 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.
+ */
+
+/*
+ * This file is a reduced version of the header file of
+ * <X11/extensions/Xdamaga.h>
+ *
+ * This copy of code has been introduced to allow a clear namespace
+ * separation between <X11/...> and <nx-X11/...> header files.
+ *
+ * This version of the Xdamage library header file only contains symbols
+ * required by nxcompshad and strictly avoids indirectly including
+ * from an X11 library that is also shipped in nx-X11/lib/.
+ *
+ * When using <X11/extensions/Xdamage.h> instead for inclusion in
+ * nxcompshad, it will attempt pulling in the <X11/extensions/Xfixes.h>
+ * header which in turn will include <X11/Xlib.h>. However, the headers of
+ * the same name from <nx-X11/...> should be used instead.
+ *
+ * FIXME: Once the nxagent Xserver starts using libXfixes from X.Org, this
+ * hack can be removed.
+ *
+ * 2015/06/26, Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+ */
+
+
+#ifndef _XDAMAGE_H_
+#define _XDAMAGE_H_
+
+#include <X11/extensions/damagewire.h>
+#include <nx-X11/Xfuncproto.h>
+
+/* from <X11/extensions/Xfixes.h> */
+typedef XID XserverRegion;
+
+#define XDAMAGE_1_1_INTERFACE
+
+typedef XID Damage;
+
+typedef struct {
+ int type; /* event base */
+ unsigned long serial;
+ Bool send_event;
+ Display *display;
+ Drawable drawable;
+ Damage damage;
+ int level;
+ Bool more; /* more events will be delivered immediately */
+ Time timestamp;
+ XRectangle area;
+ XRectangle geometry;
+} XDamageNotifyEvent;
+
+_XFUNCPROTOBEGIN
+
+Bool XDamageQueryExtension (Display *dpy,
+ int *event_base_return,
+ int *error_base_return);
+
+Status XDamageQueryVersion (Display *dpy,
+ int *major_version_return,
+ int *minor_version_return);
+
+Damage
+XDamageCreate (Display *dpy, Drawable drawable, int level);
+
+void
+XDamageSubtract (Display *dpy, Damage damage,
+ XserverRegion repair, XserverRegion parts);
+
+_XFUNCPROTOEND
+
+#endif /* _XDAMAGE_H_ */
diff --git a/nxcompshad/X11/include/Xrandr_nxcompshad.h b/nxcompshad/X11/include/Xrandr_nxcompshad.h
new file mode 100644
index 000000000..4feb01685
--- /dev/null
+++ b/nxcompshad/X11/include/Xrandr_nxcompshad.h
@@ -0,0 +1,80 @@
+/*
+ * Copyright © 2000 Compaq Computer Corporation, Inc.
+ * Copyright © 2002 Hewlett-Packard Company, Inc.
+ * Copyright © 2006 Intel Corporation
+ * Copyright © 2008 Red Hat, Inc.
+ *
+ * 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 the copyright holders not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. The copyright holders make no representations
+ * about the suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL THE COPYRIGHT HOLDERS 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.
+ *
+ * Author: Jim Gettys, HP Labs, Hewlett-Packard, Inc.
+ * Keith Packard, Intel Corporation
+ */
+
+/*
+ * This file is a reduced version of the header file of
+ * <X11/extensions/Xrandr.h>
+ *
+ * This copy of code has been introduced to allow a clear namespace
+ * separation between <X11/...> and <nx-X11/...> header files.
+ *
+ * This version of the Xrandr library header file only contains symbols
+ * required by nxcompshad and strictly avoids indirectly including
+ * from an X11 library that is also shipped in nx-X11/lib/.
+ *
+ * When using <X11/extensions/Xrandr.h> instead for inclusion in
+ * nxcompshad, it will attempt pulling in the <X11/extensions/Xrender.h>
+ * header which in turn will include <X11/Xlib.h>. However, the headers of
+ * the same name from <nx-X11/...> should be used instead.
+ *
+ * FIXME: Once the nxagent Xserver starts using libXrender from X.Org, this
+ * hack can be removed.
+ *
+ * 2015/06/26, Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+ */
+
+#ifndef _XRANDR_H_
+#define _XRANDR_H_
+
+/* from <X11/extensions/randr.h> */
+#define RRScreenChangeNotify 0
+#define RRScreenChangeNotifyMask (1L << 0)
+
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+/* internal representation is private to the library */
+typedef struct _XRRScreenConfiguration XRRScreenConfiguration;
+
+Bool XRRQueryExtension (Display *dpy,
+ int *event_base_return,
+ int *error_base_return);
+
+void XRRSelectInput(Display *dpy, Window window, int mask);
+
+
+/*
+ * intended to take RRScreenChangeNotify, or
+ * ConfigureNotify (on the root window)
+ * returns 1 if it is an event type it understands, 0 if not
+ */
+int XRRUpdateConfiguration(XEvent *event);
+_XFUNCPROTOEND
+
+#endif /* _XRANDR_H_ */