aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver
diff options
context:
space:
mode:
Diffstat (limited to 'nx-X11/programs/Xserver')
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Args.c31
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Reconnect.c2
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Screen.c6
3 files changed, 36 insertions, 3 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Args.c b/nx-X11/programs/Xserver/hw/nxagent/Args.c
index 5c5a1e8f8..309f08d0e 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Args.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Args.c
@@ -42,6 +42,7 @@ is" without express or implied warranty.
#include "screenint.h"
#include "input.h"
#include "misc.h"
+#include "globals.h"
#include "scrnintstr.h"
#include "dixstruct.h"
#include "servermd.h"
@@ -1202,6 +1203,36 @@ static void nxagentParseOptions(char *name, char *value)
return;
}
+ else if (!strcmp(name, "xinerama"))
+ {
+#ifdef PANORAMIX
+ if (!PanoramiXExtensionDisabledHack)
+ {
+ if (!strcmp(value, "1"))
+ {
+ nxagentChangeOption(Xinerama, 1);
+ }
+ else if (!strcmp(value, "0"))
+ {
+ nxagentChangeOption(Xinerama, 0);
+ }
+ else
+ {
+ fprintf(stderr, "Warning: Ignoring bad value '%s' for option 'xinerama'.\n",
+ validateString(value));
+ }
+ }
+ else
+ {
+ nxagentChangeOption(Xinerama, 0);
+ fprintf(stderr, "Warning: Xinerama extension has been disabled via -disablexineramaextension cmdline switch.\n");
+ }
+#else
+ nxagentChangeOption(Xinerama, 0);
+ fprintf(stderr, "Warning: No Xinerama support compiled into nxagent.\n")
+#endif /* of PANORAMIX */
+ return;
+ }
else if (!strcmp(name, "resize"))
{
if (nxagentOption(DesktopResize) == 0 || strcmp(value, "0") == 0)
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c b/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c
index b26fa9cfe..660d30863 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c
@@ -624,7 +624,7 @@ Bool nxagentReconnectSession(void)
nxagentRedirectDefaultWindows();
- if (nxagentResizeDesktopAtStartup || nxagentOption(Rootless) == True)
+ if (nxagentResizeDesktopAtStartup || nxagentOption(Rootless) == True || nxagentOption(Xinerama) == True)
{
nxagentChangeScreenConfig(0, nxagentOption(RootWidth),
nxagentOption(RootHeight), 0, 0);
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Screen.c b/nx-X11/programs/Xserver/hw/nxagent/Screen.c
index 087f3f41a..17e749a6b 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c
@@ -1113,8 +1113,10 @@ Bool nxagentOpenScreen(int index, ScreenPtr pScreen,
nxagentChangeOption(ViewportXSpan, nxagentOption(Width) - nxagentOption(RootWidth));
nxagentChangeOption(ViewportYSpan, nxagentOption(Height) - nxagentOption(RootHeight));
- /* store the user's preference provided via cmdline */
- nxagentOption(Xinerama) = !noPanoramiXExtension;
+ /* PanoramiXExtension enabled via cmdline, turn on Xinerama in nxagent
+ */
+ if( (!noPanoramiXExtension) && (!PanoramiXExtensionDisabledHack) )
+ nxagentOption(Xinerama) = True;
if (nxagentReconnectTrap == 0)
{