diff options
author | Ulrich Sibiller <uli42@gmx.de> | 2020-04-23 21:10:06 +0200 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2020-05-07 14:58:17 +0200 |
commit | 5c99ec51ad000189a30ad9a19326bff7b12adbcf (patch) | |
tree | 3ba7fd10fac8dea38d70b539a17c9d5db1352ce4 | |
parent | 8604b18e03557f145be2218bf89fa2597cee1a68 (diff) | |
download | nx-libs-5c99ec51ad000189a30ad9a19326bff7b12adbcf.tar.gz nx-libs-5c99ec51ad000189a30ad9a19326bff7b12adbcf.tar.bz2 nx-libs-5c99ec51ad000189a30ad9a19326bff7b12adbcf.zip |
Rootless.c: do not import private properties
In rootless mode some properties are private (or internal or
adminitrative). They are only required for the windows on the real X
server side that represent nxagent's windows. Those properties should
never be cloned from there to the the nxagent windows so we filter
them.
Fixes ArcticaProject/nx-libs#920
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Atoms.c | 4 | ||||
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Rootless.c | 36 |
2 files changed, 40 insertions, 0 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Atoms.c b/nx-X11/programs/Xserver/hw/nxagent/Atoms.c index 2e144bb0c..358d46519 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Atoms.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Atoms.c @@ -73,6 +73,10 @@ static void nxagentPrintAtomMapInfo(char *message); Atom nxagentAtoms[NXAGENT_NUMBER_OF_ATOMS]; +/* + * Careful! Do not change indices here! Some of those are referenced + * at other places via nxagentAtoms[index]. + */ static char *nxagentAtomNames[NXAGENT_NUMBER_OF_ATOMS + 1] = { "NX_IDENTITY", /* 0 */ diff --git a/nx-X11/programs/Xserver/hw/nxagent/Rootless.c b/nx-X11/programs/Xserver/hw/nxagent/Rootless.c index b63d40802..3bd0b7c25 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Rootless.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Rootless.c @@ -39,6 +39,7 @@ #include "Atoms.h" #include "Trap.h" #include "Utils.h" +#include "Atoms.h" #include "compext/Compext.h" @@ -890,6 +891,41 @@ void nxagentImportProperty(Window window, import = True; } + else if (property == nxagentAtoms[0]) /* NX_IDENTITY */ + { + #ifdef WARNING + fprintf(stderr, "%s: not importing private [%ld][NXDARWIN].\n", __func__, + (long int) property); + #endif + } + else if (property == nxagentAtoms[5]) /* NX_CUT_BUFFER_SERVER */ + { + #ifdef WARNING + fprintf(stderr, "%s: not importing private [%ld][NX_CUT_BUFFER_SERVER].\n", __func__, + (long int) property); + #endif + } + else if (property == nxagentAtoms[8]) /* NX_AGENT_SIGNATURE */ + { + #ifdef WARNING + fprintf(stderr, "%s: not importing private [%ld][NX_AGENT_SIGNATURE].\n", __func__, + (long int) property); + #endif + } + else if (property == nxagentAtoms[9]) /* NXDARWIN */ + { + #ifdef TEST + fprintf(stderr, "%s: not importing private [%ld][NXDARWIN].\n", __func__, + (long int) property); + #endif + } + else if (property == nxagentAtoms[15]) /* NX_SELTRANS_FROM_AGENT */ + { + #ifdef TEST + fprintf(stderr, "%s: not importing private [%ld][NX_SELTRANS_FROM_AGENT].\n", __func__, + (long int) property); + #endif + } else if (strcmp(typeS, "STRING") == 0 || strcmp(typeS, "UTF8_STRING") == 0 || strcmp(typeS, "CARDINAL") == 0 || |