diff options
Diffstat (limited to 'nx-X11/programs/Xserver/hw/nxagent/Rootless.c')
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Rootless.c | 99 |
1 files changed, 11 insertions, 88 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Rootless.c b/nx-X11/programs/Xserver/hw/nxagent/Rootless.c index 706aa9320..53f4df41e 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Rootless.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Rootless.c @@ -1,6 +1,6 @@ /**************************************************************************/ /* */ -/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */ +/* Copyright (c) 2001, 2009 NoMachine, http://www.nomachine.com/. */ /* */ /* NXAGENT, NX protocol compression and NX extensions to this software */ /* are copyright of NoMachine. Redistribution and use of the present */ @@ -626,7 +626,6 @@ int nxagentExportProperty(pWin, property, type, format, mode, nUnits, value) XlibAtom *atoms = malloc(nUnits * sizeof(*atoms)); Atom *input = value; int i; - int j = 0; freeMem = True; export = True; @@ -634,40 +633,16 @@ int nxagentExportProperty(pWin, property, type, format, mode, nUnits, value) for (i = 0; i < nUnits; i++) { - /* - * Exporting the _NET_WM_PING property could - * result in rootless windows being grayed out - * when the compiz window manager is running. - * - * Better solution would probably be to handle - * the communication with the window manager - * instead of just getting rid of the property. - */ - - if (strcmp(NameForAtom(input[i]), "_NET_WM_PING") != 0) - { - atoms[j] = nxagentLocalToRemoteAtom(input[i]); - - if (atoms[j] == None) - { - #ifdef WARNING - fprintf(stderr, "nxagentExportProperty: WARNING! Failed to convert local atom %ld [%s].\n", - (long int) input[i], validateString(NameForAtom(input[i]))); - #endif - } - - j++; - } - #ifdef TEST - else - { - fprintf(stderr, "nxagentExportProperty: WARNING! " - "Not exporting the _NET_WM_PING property.\n"); - } - #endif + atoms[i] = nxagentLocalToRemoteAtom(input[i]); + + if (atoms[i] == None) + { + #ifdef WARNING + fprintf(stderr, "nxagentExportProperty: WARNING! Failed to convert local atom %ld [%s].\n", + (long int) input[i], validateString(NameForAtom(input[i]))); + #endif + } } - - nUnits = j; } else if (strcmp(typeS, "WINDOW") == 0) { @@ -725,57 +700,7 @@ int nxagentExportProperty(pWin, property, type, format, mode, nUnits, value) } else { - #ifdef TEST - fprintf(stderr, "nxagentExportProperty: Property [%lu] format [%i] " - "units [%lu].\n", propertyX, format, nUnits); - #endif - - if ((format >> 3) * nUnits + sizeof(xChangePropertyReq) < - (MAX_REQUEST_SIZE << 2)) - { - XChangeProperty(nxagentDisplay, nxagentWindow(pWin), propertyX, typeX, - format, mode, (void*)output, nUnits); - } - else if (mode == PropModeReplace) - { - int n; - char *data; - - XDeleteProperty(nxagentDisplay, nxagentWindow(pWin), propertyX); - - data = (char *) output; - - while (nUnits > 0) - { - if ((format >> 3) * nUnits + sizeof(xChangePropertyReq) < - (MAX_REQUEST_SIZE << 2)) - { - n = nUnits; - } - else - { - n = ((MAX_REQUEST_SIZE << 2) - sizeof(xChangePropertyReq)) / - (format >> 3); - } - - XChangeProperty(nxagentDisplay, nxagentWindow(pWin), propertyX, - typeX, format, PropModeAppend, (void*) data, n); - - nUnits -= n; - - data = (char *) data + n * (format >> 3); - } - } - else - { - #ifdef WARNING - fprintf(stderr, "nxagentExportProperty: WARNING! " - "Property [%lu] too long.\n", propertyX); - #endif - - goto nxagentExportPropertyError; - } - + XChangeProperty(nxagentDisplay, nxagentWindow(pWin), propertyX, typeX, format, mode, (void*)output, nUnits); nxagentAddPropertyToList(propertyX, pWin); } } @@ -790,8 +715,6 @@ int nxagentExportProperty(pWin, property, type, format, mode, nUnits, value) #endif } - nxagentExportPropertyError: - if (freeMem) { xfree(output); |