aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver/hw
Commit message (Collapse)AuthorAgeFilesLines
* {nx-X11/programs/Xserver/hw/nxagent/{{Args,Handlers,Image,Options}.c,Options ↵Mihai Moldovan2016-06-175-24/+83
| | | | .h},nxcomp/{Loop,Misc}.cpp}: add configurable sleep delay if session is suspended.
* nxagentReversePointerMap: Don't assume Xevent.xbutton.button is always ↵Mike Gabriel2016-06-152-3/+3
| | | | | | | greater than zero. We have seen Xevent.xbutton.button being set to AnyButton (equaling 0). Fixes ArcticaProject/nx-libs#92 Fixes X2GoBTS#791
* nx-X11/programs/Xserver/hw/nxagent/Handlers.h: fix stack smashing related to ↵Mihai Moldovan2016-06-131-1/+21
| | | | | | | | | | | | | | | | | different data type sizes between Xserver and Xlib. While on the X server side we were expecting a 32bit value, the Xlib side in nxcompext wrote a 64bit integer to the 32bit location, hence overwriting "random" data on the stack (most notably the return adress.) We can work around this by using the Xlib-based Window data type on the server-side as well, but this problem is likely a more general one. Calling functions from libcompext in nxagent sounds like a bad idea. Other code locations might well be affected by issues alike to that as well. In order to silence compiler warnings, use a "macro hack" for overriding the "Window" type in NXlib.h.
* nx-X11/programs/Xserver: Include nxcomp{,ext,shad} headers like one would do ↵Mike Gabriel2016-06-1328-49/+49
| | | | with system-wide shared libraries.
* hw/nxagent/Args.c: Fix syntax errors for builds using -UPANORAMIX.Mike Gabriel2016-06-091-1/+1
|
* nx-X11/programs/Xserver/{hw/nxagent/NX,render/}picture.c: add and use new ↵Mihai Moldovan2016-05-301-0/+98
| | | | | | | | function ReduceCompositeOp(). More or less just an optimization for more "trivial" composite operations requiring less work, but syncs up the newer X.Org Server and nx-libs a bit more.
* misc nx-X11/{programs/Xserver/composite,include/extensions}: update to ↵Mihai Moldovan2016-05-301-2/+6
| | | | Composite 0.4 - with changes where neccessary and rough edges.
* nx-X11/programs/Xserver/{dix/{colormap.c,window.c},hw/nxagent/NXwindow.c,inc ↵Mihai Moldovan2016-05-251-0/+8
| | | | lude/{colormap,window{,str}}.h}: backport features needed for Composite 0.4.
* hw/nxagent/Display.c: Avoid incompatible pointer type.Mike Gabriel2016-05-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | Amends the following compiler warning Display.c: In function ‘nxagentMakeIcon’: Display.c:1949:18: warning: assignment from incompatible pointer type agentIconData=x2goagentIconData; ^ Display.c:1954:18: warning: assignment from incompatible pointer type agentIconData=nxagentIconData; ^ Display.c:2001:41: warning: passing argument 3 of ‘XpmCreatePixmapFromData’ from incompatible pointer type agentIconData, ^ In file included from Icons.h:22:0, from Display.c:67: X11/include/xpm_nxagent.h:242:6: note: expected ‘char **’ but argument is of type ‘char *’ FUNC(XpmCreatePixmapFromData, int, (Display *display, ^ X11/include/xpm_nxagent.h:230:32: note: in definition of macro ‘FUNC’ #define FUNC(f, t, p) extern t f p
* hw/nxagent/Display.c: Define Pixmap from XlibPixmap before including Icons.h ↵Mike Gabriel2016-05-131-0/+4
| | | | (which includes hw/nxagent/X11/include/xpm_nxagent.h).
* hw/nxagent/Holder.c: Define Pixmap from XlibPixmap before including ↵Mike Gabriel2016-05-131-0/+1
| | | | hw/nxagent/X11/include/xpm_nxagent.h.
* hw/nxagent/Events.c: Avoid '#endif <empty line> #ifdef DEBUG' blocks.Mihai Moldovan2016-05-131-12/+0
|
* hw/nxagent/NXmiexpose.c: Initialize all items of the newValues[] array.Mike Gabriel2016-05-131-1/+1
| | | | | | | | | | | | | Amends the following compiler warnings: ``` NXmiexpose.c:904:18: warning: ‘newValues[2].ptr’ may be used uninitialized in this function [-Wmaybe-uninitialized] gcval[i++].ptr = newValues[TILE].ptr; ^ NXmiexpose.c:914:24: warning: ‘newValues[1].val’ may be used uninitialized in this function [-Wmaybe-uninitialized] if ( pGC->fgPixel != newValues[FOREGROUND].val) { ^ ```
* hw/nxagent/Keystroke.c: Fix warning: pointer type mismatch in conditional ↵Mike Gabriel2016-05-021-1/+1
| | | | expression.
* hw/nxagent/Window.c: Initialize tmp_mask and attributes.event_mask with ↵Mike Gabriel2016-05-021-1/+1
| | | | | | | | | | | | | NoEventMask. Amends the following compiler warning: ``` Window.c: In function ‘nxagentSetTopLevelEventMask’: Window.c:3392:31: warning: ‘attributes.event_mask’ may be used uninitialized in this function [-Wmaybe-uninitialized] Mask tmp_mask = attributes.event_mask; ^ ```
* hw/nxagent/Colormap.c: Don't declare and assign flexibility variable if not ↵Mike Gabriel2016-05-021-2/+0
| | | | | | | | | | | | | used later on. Amends the following compiler warning: ``` Colormap.c: In function ‘nxagentReconnectAllColormap’: Colormap.c:575:7: warning: variable ‘flexibility’ set but not used [-Wunused-but-set-variable] int flexibility; ^ ```
* hw/nxagent/GCOps.c: Don't declare and assign oldDstxyValue if not used later on.Mike Gabriel2016-05-021-4/+0
| | | | | | | | | | | Amends the following compiler warning: ``` GCOps.c: In function ‘nxagentCopyArea’: GCOps.c:597:7: warning: variable ‘oldDstxyValue’ set but not used [-Wunused-but-set-variable] int oldDstxyValue; ^ ```
* hw/nxagent/GC.c: Don't declare and assign flexibility variable if not used ↵Mike Gabriel2016-05-021-3/+0
| | | | | | | | | | | | | later on. Amends the following compiler warning: ``` GC.c: In function ‘nxagentReconnectAllGCs’: GC.c:1154:7: warning: variable ‘flexibility’ set but not used [-Wunused-but-set-variable] int flexibility; ^ ```
* hw/nxagent/Events.c: Only declare and assign message_data and box variables ↵Mike Gabriel2016-05-021-25/+8
| | | | | | | | | | | | | | | | | if compiled with -DTEST / -DDEBUG (plus drop commented out code). Amends the following compiler warnings: ``` Events.c: In function ‘nxagentHandleClientMessageEvent’: Events.c:2694:13: warning: variable ‘message_data’ set but not used [-Wunused-but-set-variable] char *message_data; ^ Events.c: In function ‘nxagentClipAndSendExpose’: Events.c:4313:10: warning: variable ‘box’ set but not used [-Wunused-but-set-variable] BoxRec box; ^ ```
* hw/nxagent/Display.c: Don't declare and assign packMethod / packQuality if ↵Mike Gabriel2016-05-021-4/+0
| | | | | | | | | | | | | | | | not used later on. Amends the following compiler warnings: ``` Display.c: In function ‘nxagentReconnectDisplay’: Display.c:2449:19: warning: variable ‘packQuality’ set but not used [-Wunused-but-set-variable] int packMethod, packQuality; ^ Display.c:2449:7: warning: variable ‘packMethod’ set but not used [-Wunused-but-set-variable] int packMethod, packQuality; ^ ```
* hw/nxagent/NXrender.c: Don't declare and assign the colors variable, if not ↵Mike Gabriel2016-05-021-2/+0
| | | | | | | | | | | | | used later on. Amends the following compiler warning: ``` NXrender.c: In function ‘swapStops’: NXrender.c:3036:13: warning: variable ‘colors’ set but not used [-Wunused-but-set-variable] CARD16 *colors; ^ ```
* HAVE_STDINT_H: Always include <stdint.h>.Mike Gabriel2016-05-021-4/+0
| | | | | We don't define HAVE_STDINT_H anywhere and it should be more safe using the system's definition of UINT32_MAX.
* hw/nxagent/NXdixfonts.c: Fix implicit declaration for register_fpe_functions().Mike Gabriel2016-05-021-0/+2
|
* hw/nxagent/NXdixfonts.c: Don't include <X11/fonts/fontstruct.h>. No symbol ↵Mike Gabriel2016-05-021-1/+0
| | | | needed from that header file.
* hw/nxagent/NXpicture.c: Don't declare anything in empty function ↵Mike Gabriel2016-05-021-6/+0
| | | | | | | | | | | | | | | | nxagentReconnectPictFormat. Amends the following compiler warnings: ``` NXpicture.c: In function ‘nxagentReconnectPictFormat’: NXpicture.c:2148:9: warning: variable ‘pBool’ set but not used [-Wunused-but-set-variable] Bool *pBool; ^ NXpicture.c:2147:17: warning: variable ‘pFormat’ set but not used [-Wunused-but-set-variable] PictFormatPtr pFormat; ^ ```
* hw/nxagent/NXglyphcurs.c: Don't declare and set gcval, if not being used ↵Mike Gabriel2016-05-021-2/+0
| | | | | | | | | | | | | later on. Amends the following compiler warning: ``` NXglyphcurs.c: In function ‘ServerBitsFromGlyph’: NXglyphcurs.c:109:17: warning: variable ‘gcval’ set but not used [-Wunused-but-set-variable] ChangeGCVal gcval[3]; ^ ```
* hw/nxagent/Keyboard.c: The ret variable is only used later on when compiled ↵Mike Gabriel2016-05-021-1/+6
| | | | | | | | | | | | | with -DTEST. Amends the following compiler warning: ``` Keyboard.c: In function ‘nxagentKeyboardProc’: Keyboard.c:688:7: warning: variable ‘ret’ set but not used [-Wunused-but-set-variable] int ret; ^ ```
* hw/nxagent/Handlers.c: Don't declare and assign result variable if not used ↵Mike Gabriel2016-05-021-2/+1
| | | | | | | | | | | | | later on. Amends the following compiler warning: ``` Handlers.c: In function ‘nxagentShadowBlockHandler’: Handlers.c:732:7: warning: variable ‘result’ set but not used [-Wunused-but-set-variable] int result; ^ ```
* hw/nxagent/Keyboard.c: Don't declare and set XkbDescPtr xkb if not used ↵Mike Gabriel2016-05-021-2/+0
| | | | | | | | | | | | | later on. Amends the following compiler warning: ``` Keyboard.c: In function ‘nxagentNotifyKeyboardChanges’: Keyboard.c:1211:16: warning: variable ‘xkb’ set but not used [-Wunused-but-set-variable] XkbDescPtr xkb; ^ ```
* hw/nxagent/*.c: Drop various declarations of unused ScreenPtr pScreen.Mike Gabriel2016-05-024-28/+0
| | | | | These can be dropped after we have turned REGION_* macros into static inline function calls in some of the previous commits.
* hw/nxagent/Screen.c: Cast proper types before handing values over to fprintf().Mike Gabriel2016-05-021-21/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Amends the following compiler warnings: ``` Screen.c: In function ‘nxagentCreateIconWindow’: Screen.c:394:15: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 3 has type ‘Window’ [-Wformat=] nxagentIconWindow); ^ Screen.c: In function ‘nxagentSetScreenSaverTime’: Screen.c:456:19: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘CARD32’ [-Wformat=] ScreenSaverTime, ScreenSaverInterval); ^ Screen.c:456:19: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘CARD32’ [-Wformat=] Screen.c:476:19: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘CARD32’ [-Wformat=] ScreenSaverTime, ScreenSaverInterval); ^ Screen.c:476:19: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘CARD32’ [-Wformat=] Screen.c: In function ‘nxagentOpenScreen’: Screen.c:1234:19: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘VisualID’ [-Wformat=] visuals[numVisuals].vid); ^ Screen.c:1274:23: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘VisualID’ [-Wformat=] depths[depthIndex].depth); ^ Screen.c:1282:17: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘VisualID’ [-Wformat=] defaultVisualIndex, visuals[defaultVisualIndex].vid); ^ Screen.c:1319:19: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 6 has type ‘VisualID’ [-Wformat=] rootDepth, defaultVisual); ^ Screen.c:1336:19: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 6 has type ‘VisualID’ [-Wformat=] rootDepth, defaultVisual); ^ Screen.c:1348:19: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 6 has type ‘VisualID’ [-Wformat=] rootDepth, defaultVisual); ^ Screen.c:1357:19: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 6 has type ‘VisualID’ [-Wformat=] rootDepth, defaultVisual); ^ Screen.c:1723:21: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 3 has type ‘Window’ [-Wformat=] nxagentDefaultWindows[pScreen->myNum]); ^ Screen.c:1763:19: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 3 has type ‘Window’ [-Wformat=] nxagentDefaultWindows[pScreen->myNum]); ^ Screen.c:1775:17: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 3 has type ‘Window’ [-Wformat=] nxagentDefaultWindows[pScreen->myNum]); ^ Screen.c:1790:17: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 3 has type ‘Window’ [-Wformat=] nxagentDefaultWindows[pScreen->myNum]); ^ Screen.c: In function ‘nxagentShadowAdaptDepth’: Screen.c:3189:14: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 3 has type ‘long unsigned int’ [-Wformat=] pVisual -> red_mask, pVisual -> green_mask, pVisual -> blue_mask); ^ Screen.c:3189:14: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 4 has type ‘long unsigned int’ [-Wformat=] Screen.c:3189:14: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 5 has type ‘long unsigned int’ [-Wformat=] Screen.c:3198:15: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 3 has type ‘long unsigned int’ [-Wformat=] redMask, greenMask, blueMask); ^ Screen.c:3198:15: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 4 has type ‘long unsigned int’ [-Wformat=] Screen.c:3198:15: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 5 has type ‘long unsigned int’ [-Wformat=] ```
* hw/nxagent/Screen.c: Drop various unused variables.Mike Gabriel2016-05-021-10/+1
| | | | | | | | | | | | | | | | | | | | | | | Amends the following compiler warnings: ``` Screen.c: In function ‘nxagentReconnectScreen’: Screen.c:3547:7: warning: variable ‘flexibility’ set but not used [-Wunused-but-set-variable] int flexibility; ^ Screen.c: In function ‘nxagentAdjustRandRXinerama’: Screen.c:3746:12: warning: unused variable ‘j’ [-Wunused-variable] int i, j; ^ Screen.c: In function ‘nxagentSaveAreas’: Screen.c:4116:15: warning: variable ‘pDrawable’ set but not used [-Wunused-but-set-variable] DrawablePtr pDrawable; ^ Screen.c: In function ‘nxagentRestoreAreas’: Screen.c:4236:15: warning: variable ‘pDrawable’ set but not used [-Wunused-but-set-variable] DrawablePtr pDrawable; ^ ```
* hw/nxagent/Screen.h: Provide prototype for nxagentAdjustRandRXinerama(). ↵Mike Gabriel2016-05-022-0/+3
| | | | | | | | | | | | Avoid implicit-declaration compiler warning. Amends the following compiler warning: ``` Screen.c:3716:5: warning: implicit declaration of function ‘nxagentAdjustRandRXinerama’ [-Wimplicit-function-declaration] nxagentAdjustRandRXinerama(pScreen); ^ ```
* hw/nxagent/Screen.c: Correctly use already defined MIN/MAX macros.Mike Gabriel2016-05-022-4/+4
| | | | | | | | | | | | | | | | | | Use MIN(A,B) macro as defined in Utils.h. Add MAX(A,B) macro in Utils.h, as well. Don't have another set of MIN/MAX macro definitions in Screen.c. Amends the following compiler warnings: ``` Screen.c:3600:0: warning: "MIN" redefined #define MIN(a,b) ((a) < (b)) ? (a) : (b); ^ In file included from Screen.c:78:0: Utils.h:36:0: note: this is the location of the previous definition #define MIN(A, B) ( (A) < (B) ? (A) : (B) ) ^ ```
* hw/nxagent/Window.c: Don't declare "XWindowChanges changes;" and later not ↵Mike Gabriel2016-05-021-4/+0
| | | | | | | | | | | | use it. Amends the following compiler warning: ``` Window.c:2179:24: warning: variable ‘changes’ set but not used [-Wunused-but-set-variable] XWindowChanges changes; ^ ```
* hw/nxagent/Pixmap.c: pBool pointer is only required when compiled in -DTEST ↵Mike Gabriel2016-05-021-1/+1
| | | | | | | | | | | | | mode. Amends the following compiler warning: ``` Pixmap.c: In function ‘nxagentDisconnectPixmap’: Pixmap.c:755:9: warning: variable ‘pBool’ set but not used [-Wunused-but-set-variable] Bool *pBool; ^ ```
* hw/nxagent/Extension.c: Don't declare pRandRScrPriv without using it later on.Mike Gabriel2016-05-021-3/+0
| | | | | | | | | | | | | | | | | | | Amends the following the compiler warnings: ``` Extensions.c: In function ‘nxagentRandRInitSizes’: Extensions.c:159:16: warning: unused variable ‘pRandRScrPriv’ [-Wunused-variable] rrScrPrivPtr pRandRScrPriv = rrGetScrPriv(pScreen); ^ Extensions.c: In function ‘nxagentRandRSetConfig’: Extensions.c:263:16: warning: unused variable ‘pRandRScrPriv’ [-Wunused-variable] rrScrPrivPtr pRandRScrPriv; ^ Extensions.c: In function ‘nxagentRandRScreenSetSize’: Extensions.c:322:16: warning: unused variable ‘pRandRScrPriv’ [-Wunused-variable] rrScrPrivPtr pRandRScrPriv; ^ ```
* hw/nxagent/Rootless.c: Type cast type Atom to type long unsigned int before ↵Mike Gabriel2016-05-021-1/+1
| | | | | | | | | | | | | handing it over to %lu in fprintf(). Amends the following compiler warnings: ``` Rootless.c: In function ‘nxagentExportProperty’: Rootless.c:775:21: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘Atom’ [-Wformat=] "Property [%lu] too long.\n", propertyX); ^ ```
* hw/nxagent/Splash.c: Drop unused variable declaration "XPoint m[12];".Mike Gabriel2016-05-021-1/+0
| | | | | | | | | | | Amends the following compiler warning: ``` Splash.c: In function ‘nxagentPaintLogo’: Splash.c:168:13: warning: unused variable ‘m’ [-Wunused-variable] XPoint m[12]; ^ ```
* hw/nxagent/Clipboard.c: The result variable is only needed when combiled ↵Mike Gabriel2016-05-021-4/+12
| | | | | | | | | | | | | with -DDEBUG. Amends the following compiler warning: ``` Clipboard.c: In function ‘nxagentRequestSelection’: Clipboard.c:272:7: warning: variable ‘result’ set but not used [-Wunused-but-set-variable] int result; ^ ```
* hw/nxagent/Drawable.c: RegionNumRects returns int, not long int anymore.Mike Gabriel2016-05-021-1/+1
|
* Change region implementation names to eliminate the 'mi' prefixMike Gabriel2016-05-021-2/+2
| | | | | | | | | | This prepares the file to be moved from mi to dix. This patch was done mechanically with the included scripts 'fix-miregion' run over the entire X server and 'fix-miregion-private' run over include/regionstr.h and mi/miregion.c. v1: Keith Packard <keithp@keithp.com> v2: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> (backported to nx-libs)
* pixman-devel: Build against shared library pkg-config(pixman-1).Mike Gabriel2016-05-021-1/+4
|
* Rename region macros to eliminate screen argumentMike Gabriel2016-05-0218-637/+637
| | | | | | | | | | | | | | | | | | | | | This is a huge mechanical patch and a few small fixups required to finish the job. They were reviewed separately, but because the server does not build without both pieces, I've merged them together at this time. The mechanical changes were performed by running the included 'fix-region' script over the whole nx-X11/programs/Xserver tree: $ cd nx-X11/programs/Xserver && ( git ls-files | grep -v '^fix-' | xargs ./fix-region; ) And then, the white space errors in the resulting patch were fixed using the provided fix-patch-whitespace script. $ sh ./fix-patch-whitespace Thanks to Jamey Sharp for the mighty fine sed-generating sed script. v1: Keith Packard <keithp@keithp.com> (X.Org xserver commit: 2dc138922b7588515d5f2447e4b9dcdc0bef15e0) v2: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> (apply fix-region script to nx-libs)
* NXwindow.c: Don't set w and h, not used later on.Mike Gabriel2016-05-021-4/+0
| | | | | | | | | | | | | | Amends the following compiler warnings: ``` NXwindow.c: In function ‘nxagentClearSplash’: NXwindow.c:342:12: warning: variable ‘h’ set but not used [-Wunused-but-set-variable] int w, h; ^ NXwindow.c:342:9: warning: variable ‘w’ set but not used [-Wunused-but-set-variable] int w, h; ^ ```
* library-cleanup: Don't build libNX_Xrender anymore. Use system's libXrender ↵Mike Gabriel2016-04-203-3/+640
| | | | shared library.
* Fix c4a3889. Add forgotten file nx-X11/programs/Xserver/Xinerama_nxagent.h.Mike Gabriel2016-01-011-0/+74
|
* Complete changes from commit 0d56c45 in NXpicturestr.h (i.e. add a missing ↵Mike DePaulo2015-12-301-0/+6
| | | | | | | comment). (Fixes ArcticaProject/nx-libs#38). commit 0d56c45 was: nx-X11: handle source pictures (those without a Drawable surface) gracefully.
* Xinerama: do not cut off at outer edgesUlrich Sibiller2015-12-302-3/+77
| | | | | | | | | | | | | | | | | | | | | This fixes the problem Mike Gabriel describes like this: - Launch a session on a system with a single monitor. Enable Xinerama for this session. - Open a desktop session in that session window (e.g. MATE or XFCE). - Move the NX/MATE-or-XFCE session window around on that one monitor. Bump at the borders, so that the session window moves into the invisible parts around your monitor. What you see is that the MATE-or-XFCE window manager will become really busy with resizing the windows and panels in the NX session, because moving the window over the physical borders of the display will trigger resize events. This is non-intuitive, I think. Same with multi-monitors on the outside edges of the physical Xorg RandR setup.
* Provide support for re-enabling Xinerama on session resumptions.Mike Gabriel2015-12-303-3/+36
| | | | | | | | | | | | | | By design, when resuming a session, Xinerama can only be re-enabled by NX option parsing. Thus, this change introduces a "xinerama" NX option that can be loaded via an options file into NX agent when resuming a session. The new xinerame NX session option also allows switching on Xinerama at session startup via an option file. When implementing the new NX Xinerama support into clients (like TheQVD, X2Go Client, etc., this new xinerama NX option should be used for activating Xinerama in the NX / QVD / X2Go session.