[X2Go-Commits] [nx-libs] 19/38: nxagent: Add support for optionally enabling/disabling the magic pixel feature.

git-admin at x2go.org git-admin at x2go.org
Mon Feb 26 06:45:03 CET 2018


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch 3.6.x
in repository nx-libs.

commit 8d00456ad3e7b7a49d8fadb269334589e3704758
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Wed Feb 21 10:39:46 2018 +0100

    nxagent: Add support for optionally enabling/disabling the magic pixel feature.
    
    Fixes ArcticaProject/nx-libs#657.
---
 nx-X11/programs/Xserver/hw/nxagent/Args.c        | 18 ++++++++++++++++++
 nx-X11/programs/Xserver/hw/nxagent/Events.c      |  2 +-
 nx-X11/programs/Xserver/hw/nxagent/Options.c     |  2 ++
 nx-X11/programs/Xserver/hw/nxagent/Options.h     |  6 ++++++
 nx-X11/programs/Xserver/hw/nxagent/man/nxagent.1 |  7 +++++++
 nxcomp/src/Loop.cpp                              |  3 ++-
 nxcomp/src/Misc.cpp                              |  1 +
 nxproxy/man/nxproxy.1                            |  1 +
 8 files changed, 38 insertions(+), 2 deletions(-)

diff --git a/nx-X11/programs/Xserver/hw/nxagent/Args.c b/nx-X11/programs/Xserver/hw/nxagent/Args.c
index 14f696e..604b331 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Args.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Args.c
@@ -676,6 +676,10 @@ int ddxProcessArgument(int argc, char *argv[], int i)
     return 1;
   }
 
+  if (!strcmp(argv[i], "-nomagicpixel")) {
+    nxagentChangeOption(MagicPixel, 0);
+    return 1;
+  }
 
   if (!strcmp(argv[i], "-noonce"))
   {
@@ -1246,6 +1250,19 @@ static void nxagentParseOptions(char *name, char *value)
 
     return;
   }
+  else if (!strcmp(name, "magicpixel"))
+  {
+    if (!strcmp(value, "0"))
+    {
+      nxagentChangeOption(MagicPixel, 0);
+    }
+    else
+    {
+      nxagentChangeOption(MagicPixel, 1);
+    }
+
+    return;
+  }
   else if (strcmp(name, "shadowuid") == 0)
   {
     nxagentShadowUid = atoi(value);
@@ -2075,6 +2092,7 @@ void ddxUseMsg()
   ErrorF("-forcenx               force use of NX protocol messages assuming communication through nxproxy\n");
   ErrorF("-timeout int           auto-disconnect timeout in seconds (minimum allowed: 60)\n");
   ErrorF("-norootlessexit        don't exit if there are no clients in rootless mode\n");
+  ErrorF("-nomagicpixel          disable nxagent's magic pixel\n");
 #ifdef RENDER
   ErrorF("-norender              disable the use of the render extension\n");
   ErrorF("-nocomposite           disable the use of the composite extension\n");
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Events.c b/nx-X11/programs/Xserver/hw/nxagent/Events.c
index 315b657..8681ab2 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Events.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Events.c
@@ -1218,7 +1218,7 @@ FIXME: Don't enqueue the KeyRelease event if the key was
 
         if (nxagentOption(Fullscreen))
         {
-          if (nxagentMagicPixelZone(X.xbutton.x, X.xbutton.y))
+          if ( (nxagentOption(MagicPixel) == 1) && (nxagentMagicPixelZone(X.xbutton.x, X.xbutton.y)) )
           {
             pScreen = nxagentScreen(X.xbutton.window);
 
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Options.c b/nx-X11/programs/Xserver/hw/nxagent/Options.c
index 3464fdb..dba54a6 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Options.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Options.c
@@ -155,6 +155,8 @@ void nxagentInitOptions()
 
   nxagentOptions.Menu = 1;
 
+  nxagentOptions.MagicPixel = 1;
+
   nxagentOptions.ClientOs = UNDEFINED;
 
   nxagentOptions.InhibitXkb = 1;
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Options.h b/nx-X11/programs/Xserver/hw/nxagent/Options.h
index 95b0642..a4e2c50 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Options.h
+++ b/nx-X11/programs/Xserver/hw/nxagent/Options.h
@@ -386,6 +386,12 @@ typedef struct _AgentOptions
   int Menu;
 
   /*
+   * Enabling/disabling the magic pixel.
+   */
+
+  int MagicPixel;
+
+  /*
    * Specify the Operative System of the client.
    */
 
diff --git a/nx-X11/programs/Xserver/hw/nxagent/man/nxagent.1 b/nx-X11/programs/Xserver/hw/nxagent/man/nxagent.1
index 124f087..1c0fe5f 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/man/nxagent.1
+++ b/nx-X11/programs/Xserver/hw/nxagent/man/nxagent.1
@@ -399,6 +399,10 @@ auto-disconnect timeout in seconds (minimum allowed: 60)
 .B \-norootlessexit
 don't exit if there are no clients in rootless mode
 .TP 8
+.B \-nomagicpixel
+disable magic pixel support at session startup, can be re-enabled via nx/nx option on session
+resumption
+.TP 8
 .B \-norender
 disable the use of the render extension
 .TP 8
@@ -599,6 +603,9 @@ overrides the command line default.
 support pulldown menu in \fBnxagent\fR session (only available on
 proxy <-> agent remote sessions)
 .TP 8
+.B magicpixel=<int>
+enable/disable magic pixel support in fullscreen mode (default: 1, enabled)
+.TP 8
 .B sleep=<int>
 delay X server operations when suspended (provided in msec), set to
 \fI0\fR to keep \fBnxagent\fR session fully functional when suspended
diff --git a/nxcomp/src/Loop.cpp b/nxcomp/src/Loop.cpp
index 754c55c..4862748 100644
--- a/nxcomp/src/Loop.cpp
+++ b/nxcomp/src/Loop.cpp
@@ -8474,7 +8474,8 @@ int ParseEnvironmentOptions(const char *env, int force)
     else if (strcasecmp(name, "defer") == 0 ||
                  strcasecmp(name, "tile") == 0 ||
                      strcasecmp(name, "menu") == 0 ||
-                        strcasecmp(name, "state") == 0 )
+                        strcasecmp(name, "magicpixel") == 0 ||
+                          strcasecmp(name, "state") == 0 )
     {
       nxdbg << "Loop: Ignoring agent option '" << name
             << "' with value '" << value << "'.\n"
diff --git a/nxcomp/src/Misc.cpp b/nxcomp/src/Misc.cpp
index 7e468f1..b6bf245 100644
--- a/nxcomp/src/Misc.cpp
+++ b/nxcomp/src/Misc.cpp
@@ -343,6 +343,7 @@ shadowmode=s\n\
 defer=n\n\
 tile=s\n\
 menu=n\n\
+magicpixel=n\n\
 sleep=n\n\
 tolerancechecks=s\n\
 keyconv=s\n\
diff --git a/nxproxy/man/nxproxy.1 b/nxproxy/man/nxproxy.1
index bf194e7..260465a 100644
--- a/nxproxy/man/nxproxy.1
+++ b/nxproxy/man/nxproxy.1
@@ -327,6 +327,7 @@ encryption of the point to point communication.
     defer=<int>
     tile=<string>
     menu=<int>
+    magicpixel=<int>
     sleep=<int>
 
 .SH NX ENVIRONMENT VARIABLES

--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git


More information about the x2go-commits mailing list