diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2015-05-05 10:24:24 +0200 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2015-12-30 00:05:53 +0100 |
commit | 2d776b14fddc5ec70c97aa82672f3a7c9caef6a3 (patch) | |
tree | bce0e94255ec55f75f79a8b11e851494d6e363f6 /nx-X11 | |
parent | e4763fb4879ce8782e50c784ed9e7d8c5a1b7322 (diff) | |
download | nx-libs-2d776b14fddc5ec70c97aa82672f3a7c9caef6a3.tar.gz nx-libs-2d776b14fddc5ec70c97aa82672f3a7c9caef6a3.tar.bz2 nx-libs-2d776b14fddc5ec70c97aa82672f3a7c9caef6a3.zip |
library clean-up: Don't build libNX_Xinerama anymore. Use system's libXinerama shared library. (Fixes ArcticaProject/nx-libs#49).
This commit goes along with a patch from Ulrich Sibiller who managed to
move the Xinerama awareness for NX sessions into the Xserver code. This
makes Xinerama support for NX in libNX_Xinerama.so obsolete.
Fixes ArcticaProject/nx-libs#49
Diffstat (limited to 'nx-X11')
-rw-r--r-- | nx-X11/config/cf/X11.tmpl | 37 | ||||
-rw-r--r-- | nx-X11/include/extensions/Imakefile | 4 | ||||
-rw-r--r-- | nx-X11/lib/Imakefile | 4 | ||||
-rw-r--r-- | nx-X11/lib/Xinerama/Imakefile | 30 | ||||
-rw-r--r-- | nx-X11/lib/Xinerama/Xinerama-def.cpp | 14 | ||||
-rw-r--r-- | nx-X11/lib/Xinerama/Xinerama.c | 361 | ||||
-rw-r--r-- | nx-X11/programs/Xserver/Imakefile | 2 | ||||
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Screen.c | 4 |
8 files changed, 7 insertions, 449 deletions
diff --git a/nx-X11/config/cf/X11.tmpl b/nx-X11/config/cf/X11.tmpl index af466b47f..3e7423040 100644 --- a/nx-X11/config/cf/X11.tmpl +++ b/nx-X11/config/cf/X11.tmpl @@ -226,9 +226,6 @@ XORGRELSTRING = XorgManVersionString #ifndef BuildXinerama #define BuildXinerama NO #endif -#ifndef BuildXineramaLibrary -#define BuildXineramaLibrary (BuildXinerama) -#endif #ifndef BuildXCSecurity #define BuildXCSecurity YES #endif @@ -1321,30 +1318,6 @@ ProjectUnsharedLibReferences(XONLY,NX_X11,$(XLIBSRC),XBuildLibDir) XLIBONLY = $(XONLYLIB) LINTXONLYLIB = $(LINTXONLY) -#if BuildXineramaLibrary -#ifndef SharedLibXinerama -#define SharedLibXinerama HasSharedLibraries -#endif -#ifndef NormalLibXinerama -#define NormalLibXinerama (!SharedLibXinerama || ForceNormalLib) -#endif -#ifndef DebugLibXinerama -#define DebugLibXinerama NO -#endif -#ifndef ProfileLibXinerama -#define ProfileLibXinerama NO -#endif -#else -#undef SharedLibXinerama -#define SharedLibXinerama NO -#undef NormalLibXinerama -#define NormalLibXinerama NO -#undef DebugLibXinerama -#define DebugLibXinerama NO -#undef ProfileLibXinerama -#define ProfileLibXinerama NO -#endif - #if BuildRenderLibrary #ifndef SharedLibXrender #define SharedLibXrender HasSharedLibraries @@ -1395,16 +1368,6 @@ LINTEXTENSIONLIB = $(LINTEXTENSION) XLIB = $(EXTENSIONLIB) $(XONLYLIB) LINTXLIB = $(LINTXONLYLIB) - XINERAMALIBSRC = $(LIBSRC)/Xinerama -#if SharedLibXinerama -#ifndef SharedXineramaRev -#define SharedXineramaRev 1.0 -#endif -SharedLibReferences(XINERAMA,NX_Xinerama,$(XINERAMALIBSRC),SOXINERAMAREV,SharedXineramaRev) -#else -ProjectUnsharedLibReferences(XINERAMA,NX_Xinerama,$(XINERAMALIBSRC),XBuildLibDir) -#endif - XRENDERLIBSRC = $(LIBSRC)/Xrender #if SharedLibXrender #ifndef SharedXrenderRev diff --git a/nx-X11/include/extensions/Imakefile b/nx-X11/include/extensions/Imakefile index 33e854058..eb7763535 100644 --- a/nx-X11/include/extensions/Imakefile +++ b/nx-X11/include/extensions/Imakefile @@ -35,8 +35,8 @@ XVMCHEADERS = XvMC.h XvMClib.h XvMCproto.h vldXvMC.h #if BuildFontCache FONTCACHEHEADERS = fontcache.h fontcacheP.h fontcachstr.h #endif -#if BuildXinerama || BuildXineramaLibrary -XINERAMAHEADERS = Xinerama.h panoramiXext.h panoramiXproto.h +#if BuildXinerama +XINERAMAHEADERS = panoramiXext.h panoramiXproto.h #endif #if BuildRandR RANDRHEADERS = randr.h randrproto.h diff --git a/nx-X11/lib/Imakefile b/nx-X11/lib/Imakefile index b97ef6b22..dbe4e4280 100644 --- a/nx-X11/lib/Imakefile +++ b/nx-X11/lib/Imakefile @@ -15,10 +15,6 @@ NULL = XKBLIBDIR = xkbfile #endif -#if BuildXineramaLibrary -XINERAMADIR=Xinerama -#endif - #if BuildRenderLibrary RENDERLIBDIR = Xrender #endif diff --git a/nx-X11/lib/Xinerama/Imakefile b/nx-X11/lib/Xinerama/Imakefile deleted file mode 100644 index 910f98da6..000000000 --- a/nx-X11/lib/Xinerama/Imakefile +++ /dev/null @@ -1,30 +0,0 @@ -XCOMM $XFree86: xc/lib/Xinerama/Imakefile,v 1.4 2002/10/16 00:37:31 dawes Exp $ - -#define DoNormalLib NormalLibXinerama -#define DoSharedLib SharedLibXinerama -#define DoDebugLib DebugLibXinerama -#define DoProfileLib ProfileLibXinerama -#define LibName NX_Xinerama -#define SoRev SOXINERAMAREV -#define LibHeaders NO - -#include <Threads.tmpl> - -#ifdef SharedXineramaReqs -REQUIREDLIBS = SharedXineramaReqs -#endif - -#if Malloc0ReturnsNull -ALLOC_DEFINES = -DMALLOC_0_RETURNS_NULL -#endif - - DEFINES = $(ALLOC_DEFINES) - SRCS = Xinerama.c - OBJS = Xinerama.o - LINTLIBS = $(LINTXLIB) - -#define IncludeSharedObjectInNormalLib - -#include <Library.tmpl> - -DependTarget() diff --git a/nx-X11/lib/Xinerama/Xinerama-def.cpp b/nx-X11/lib/Xinerama/Xinerama-def.cpp deleted file mode 100644 index 01449d15b..000000000 --- a/nx-X11/lib/Xinerama/Xinerama-def.cpp +++ /dev/null @@ -1,14 +0,0 @@ -LIBRARY Xinerama -VERSION LIBRARY_VERSION -EXPORTS - XPanoramiXAllocInfo - XPanoramiXGetScreenCount - XPanoramiXGetScreenSize - XPanoramiXGetState - XPanoramiXQueryExtension - XPanoramiXQueryVersion - XineramaIsActive - XineramaQueryExtension - XineramaQueryScreens - XineramaQueryVersion -/* $XFree86$ */ diff --git a/nx-X11/lib/Xinerama/Xinerama.c b/nx-X11/lib/Xinerama/Xinerama.c deleted file mode 100644 index 0256336be..000000000 --- a/nx-X11/lib/Xinerama/Xinerama.c +++ /dev/null @@ -1,361 +0,0 @@ -/* $Xorg: XPanoramiX.c,v 1.4 2000/08/17 19:45:51 cpqbld Exp $ */ -/***************************************************************** -Copyright (c) 1991, 1997 Digital Equipment Corporation, Maynard, Massachusetts. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software. - -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 -DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING, -BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL 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 Digital Equipment Corporation -shall not be used in advertising or otherwise to promote the sale, use or other -dealings in this Software without prior written authorization from Digital -Equipment Corporation. -******************************************************************/ -/* $XFree86: xc/lib/Xinerama/Xinerama.c,v 1.2 2001/07/23 17:20:28 dawes Exp $ */ - -#define NEED_EVENTS -#define NEED_REPLIES -#include <nx-X11/Xlibint.h> -#include <nx-X11/Xutil.h> -#include <nx-X11/extensions/Xext.h> -#include <nx-X11/extensions/extutil.h> -#include <nx-X11/extensions/panoramiXext.h> -#include <nx-X11/extensions/panoramiXproto.h> -#include <nx-X11/extensions/Xinerama.h> -#include <stdio.h> - -static XExtensionInfo _panoramiX_ext_info_data; -static XExtensionInfo *panoramiX_ext_info = &_panoramiX_ext_info_data; -static /* const */ char *panoramiX_extension_name = PANORAMIX_PROTOCOL_NAME; - -#define PanoramiXCheckExtension(dpy,i,val) \ - XextCheckExtension (dpy, i, panoramiX_extension_name, val) -#define PanoramiXSimpleCheckExtension(dpy,i) \ - XextSimpleCheckExtension (dpy, i, panoramiX_extension_name) - -static int close_display(); -static /* const */ XExtensionHooks panoramiX_extension_hooks = { - NULL, /* create_gc */ - NULL, /* copy_gc */ - NULL, /* flush_gc */ - NULL, /* free_gc */ - NULL, /* create_font */ - NULL, /* free_font */ - close_display, /* close_display */ - NULL, /* wire_to_event */ - NULL, /* event_to_wire */ - NULL, /* error */ - NULL, /* error_string */ -}; - -static XEXT_GENERATE_FIND_DISPLAY (find_display, panoramiX_ext_info, - panoramiX_extension_name, - &panoramiX_extension_hooks, - 0, NULL) - -static XEXT_GENERATE_CLOSE_DISPLAY (close_display, panoramiX_ext_info) - - - -/**************************************************************************** - * * - * PanoramiX public interfaces * - * * - ****************************************************************************/ - -Bool XPanoramiXQueryExtension ( - Display *dpy, - int *event_basep, - int *error_basep -) -{ - XExtDisplayInfo *info = find_display (dpy); - - if (XextHasExtension(info)) { - *event_basep = info->codes->first_event; - *error_basep = info->codes->first_error; - return True; - } else { - return False; - } -} - - -Status XPanoramiXQueryVersion( - Display *dpy, - int *major_versionp, - int *minor_versionp -) -{ - XExtDisplayInfo *info = find_display (dpy); - xPanoramiXQueryVersionReply rep; - register xPanoramiXQueryVersionReq *req; - - PanoramiXCheckExtension (dpy, info, 0); - - LockDisplay (dpy); - GetReq (PanoramiXQueryVersion, req); - req->reqType = info->codes->major_opcode; - req->panoramiXReqType = X_PanoramiXQueryVersion; - req->clientMajor = PANORAMIX_MAJOR_VERSION; - req->clientMinor = PANORAMIX_MINOR_VERSION; - if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) { - UnlockDisplay (dpy); - SyncHandle (); - return 0; - } - *major_versionp = rep.majorVersion; - *minor_versionp = rep.minorVersion; - UnlockDisplay (dpy); - SyncHandle (); - return 1; -} - -XPanoramiXInfo *XPanoramiXAllocInfo(void) -{ - return (XPanoramiXInfo *) Xmalloc (sizeof (XPanoramiXInfo)); -} - -Status XPanoramiXGetState ( - Display *dpy, - Drawable drawable, - XPanoramiXInfo *panoramiX_info -) -{ - XExtDisplayInfo *info = find_display (dpy); - xPanoramiXGetStateReply rep; - register xPanoramiXGetStateReq *req; - - PanoramiXCheckExtension (dpy, info, 0); - - LockDisplay (dpy); - GetReq (PanoramiXGetState, req); - req->reqType = info->codes->major_opcode; - req->panoramiXReqType = X_PanoramiXGetState; - req->window = drawable; - if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) { - UnlockDisplay (dpy); - SyncHandle (); - return 0; - } - UnlockDisplay (dpy); - SyncHandle (); - panoramiX_info->window = rep.window; - panoramiX_info->State = rep.state; - return 1; -} - -Status XPanoramiXGetScreenCount ( - Display *dpy, - Drawable drawable, - XPanoramiXInfo *panoramiX_info -) -{ - XExtDisplayInfo *info = find_display (dpy); - xPanoramiXGetScreenCountReply rep; - register xPanoramiXGetScreenCountReq *req; - - PanoramiXCheckExtension (dpy, info, 0); - - LockDisplay (dpy); - GetReq (PanoramiXGetScreenCount, req); - req->reqType = info->codes->major_opcode; - req->panoramiXReqType = X_PanoramiXGetScreenCount; - req->window = drawable; - if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) { - UnlockDisplay (dpy); - SyncHandle (); - return 0; - } - UnlockDisplay (dpy); - SyncHandle (); - panoramiX_info->window = rep.window; - panoramiX_info->ScreenCount = rep.ScreenCount; - return 1; -} - -Status XPanoramiXGetScreenSize ( - Display *dpy, - Drawable drawable, - int screen_num, - XPanoramiXInfo *panoramiX_info -) -{ - XExtDisplayInfo *info = find_display (dpy); - xPanoramiXGetScreenSizeReply rep; - register xPanoramiXGetScreenSizeReq *req; - - PanoramiXCheckExtension (dpy, info, 0); - - LockDisplay (dpy); - GetReq (PanoramiXGetScreenSize, req); - req->reqType = info->codes->major_opcode; - req->panoramiXReqType = X_PanoramiXGetScreenSize; - req->window = drawable; - req->screen = screen_num; /* need to define */ - if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) { - UnlockDisplay (dpy); - SyncHandle (); - return 0; - } - UnlockDisplay (dpy); - SyncHandle (); - panoramiX_info->window = rep.window; - panoramiX_info->screen = rep.screen; - panoramiX_info->width = rep.width; - panoramiX_info->height = rep.height; - return 1; -} - -/*******************************************************************\ - Alternate interface to make up for shortcomings in the original, - namely, the omission of the screen origin. The new interface is - in the "Xinerama" namespace instead of "PanoramiX". -\*******************************************************************/ - -Bool XineramaQueryExtension ( - Display *dpy, - int *event_base, - int *error_base -) -{ - return XPanoramiXQueryExtension(dpy, event_base, error_base); -} - -Status XineramaQueryVersion( - Display *dpy, - int *major, - int *minor -) -{ - return XPanoramiXQueryVersion(dpy, major, minor); -} - -Bool XineramaIsActive(Display *dpy) -{ - xXineramaIsActiveReply rep; - xXineramaIsActiveReq *req; - XExtDisplayInfo *info = find_display (dpy); - - - FILE* fptr; - if((fptr=fopen(getenv("NX_XINERAMA_CONF"),"r"))!=NULL) { - fclose (fptr); - return True; - } - else { - return False; - } - - if(!XextHasExtension(info)) - return False; /* server doesn't even have the extension */ - - LockDisplay (dpy); - GetReq (XineramaIsActive, req); - req->reqType = info->codes->major_opcode; - req->panoramiXReqType = X_XineramaIsActive; - if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) { - UnlockDisplay (dpy); - SyncHandle (); - return False; - } - UnlockDisplay (dpy); - SyncHandle (); - return rep.state; -} - - -XineramaScreenInfo * -XineramaQueryScreens( - Display *dpy, - int *number -) -{ - XExtDisplayInfo *info = find_display (dpy); - xXineramaQueryScreensReply rep; - xXineramaQueryScreensReq *req; - XineramaScreenInfo *scrnInfo = NULL; - - int i; - int x,y,w,h; - FILE* fptr; - if((fptr=fopen(getenv("NX_XINERAMA_CONF"),"r"))==NULL) { - PanoramiXCheckExtension (dpy, info, 0); - LockDisplay (dpy); - GetReq (XineramaQueryScreens, req); - req->reqType = info->codes->major_opcode; - req->panoramiXReqType = X_XineramaQueryScreens; - if (!_XReply (dpy, (xReply *) &rep, 0, xFalse)) { - UnlockDisplay (dpy); - SyncHandle (); - return NULL; - } - if(rep.number) { - if((scrnInfo = Xmalloc(sizeof(XineramaScreenInfo) * rep.number))) { - xXineramaScreenInfo scratch; - int i; - - for(i = 0; i < rep.number; i++) { - _XRead(dpy, (char*)(&scratch), sz_XineramaScreenInfo); - scrnInfo[i].screen_number = i; - scrnInfo[i].x_org = scratch.x_org; - scrnInfo[i].y_org = scratch.y_org; - scrnInfo[i].width = scratch.width; - scrnInfo[i].height = scratch.height; - } - - *number = rep.number; - } else { - _XEatData(dpy, rep.length << 2); - } - } - - UnlockDisplay (dpy); - SyncHandle (); - - } else { - - i=0; - while(!feof(fptr)) { - w=h=0; - fscanf(fptr,"%d %d %d %d",&x,&y,&w,&h); - if(w&&h) - i++; - } - rewind(fptr); - *number=i; - if((scrnInfo = Xmalloc(sizeof(XineramaScreenInfo) * i))) { - i=0; - while(!feof(fptr)){ - w=h=0; - fscanf(fptr,"%d %d %d %d",&x,&y,&w,&h); - if(w&&h){ - scrnInfo[i].screen_number=i; - scrnInfo[i].x_org=x; - scrnInfo[i].y_org=y; - scrnInfo[i].width=w; - scrnInfo[i].height=h; - i++; - } - } - } - fclose(fptr); - } - - return scrnInfo; -} - - - diff --git a/nx-X11/programs/Xserver/Imakefile b/nx-X11/programs/Xserver/Imakefile index 309d5d98f..d034c2672 100644 --- a/nx-X11/programs/Xserver/Imakefile +++ b/nx-X11/programs/Xserver/Imakefile @@ -413,7 +413,7 @@ NXAGENTNXLIBS = -L ../../../nxcomp -L ../../../nxcompext \ #else NXAGENTNXLIBS = -L ../../../nxcomp -L ../../../nxcompext -L ../../../nxcompshad \ -lXcomp -lXcompext -lXcompshad -lNX_Xrender -lNX_X11 -lNX_Xext -lXfixes -lXfont \ - -L../../../nx-X11/exports/lib -lXtst -lXrandr -lXcomposite -lNX_Xinerama -lXdmcp \ + -L../../../nx-X11/exports/lib -lXtst -lXrandr -lXcomposite -lXinerama -lXdmcp \ `pkg-config --libs libxml-2.0` #endif diff --git a/nx-X11/programs/Xserver/hw/nxagent/Screen.c b/nx-X11/programs/Xserver/hw/nxagent/Screen.c index 491a92c2f..2f70334d4 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c @@ -79,6 +79,10 @@ is" without express or implied warranty. #include "X11/include/Xrandr_nxagent.h" +#include <nx-X11/Xlib.h> +#include "X11/include/Xinerama_nxagent.h" + + #define GC XlibGC #define Font XlibFont #define KeySym XlibKeySym |