diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2019-11-02 11:14:34 +0100 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2019-11-02 11:14:34 +0100 |
commit | 7afe95535b10739d806e5d7c15a8a1e86093bf84 (patch) | |
tree | 4b373a64895cfedeb94a4e4877558cec09ee3831 | |
parent | 7b63809aefde4b45684a71d0a60e0c00b287837a (diff) | |
parent | dbf36ece31793840a16467fcac1245dfa6b587ab (diff) | |
download | nx-libs-7afe95535b10739d806e5d7c15a8a1e86093bf84.tar.gz nx-libs-7afe95535b10739d806e5d7c15a8a1e86093bf84.tar.bz2 nx-libs-7afe95535b10739d806e5d7c15a8a1e86093bf84.zip |
Merge branch 'uli42-pr/drop_holders' into 3.6.x
Attributes GH PR #856: https://github.com/ArcticaProject/nx-libs/pull/856
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/GCOps.c | 1 | ||||
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Holder.c | 233 | ||||
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Holder.h | 35 | ||||
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Icons.h | 2 | ||||
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Imakefile | 4 | ||||
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Pixmap.c | 1 | ||||
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Screen.c | 12 | ||||
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Utils.h | 11 | ||||
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Window.c | 1 | ||||
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/nxmissing.xpm | 57 |
10 files changed, 12 insertions, 345 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/GCOps.c b/nx-X11/programs/Xserver/hw/nxagent/GCOps.c index 6ab46c424..7db1aff58 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/GCOps.c +++ b/nx-X11/programs/Xserver/hw/nxagent/GCOps.c @@ -54,7 +54,6 @@ is" without express or implied warranty. #include "Events.h" #include "Client.h" #include "Trap.h" -#include "Holder.h" #include "Args.h" #include "Screen.h" #include "Utils.h" diff --git a/nx-X11/programs/Xserver/hw/nxagent/Holder.c b/nx-X11/programs/Xserver/hw/nxagent/Holder.c deleted file mode 100644 index c27f67818..000000000 --- a/nx-X11/programs/Xserver/hw/nxagent/Holder.c +++ /dev/null @@ -1,233 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */ -/* Copyright (c) 2008-2014 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> */ -/* Copyright (c) 2011-2016 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/ -/* Copyright (c) 2014-2016 Mihai Moldovan <ionic@ionic.de> */ -/* Copyright (c) 2014-2016 Ulrich Sibiller <uli42@gmx.de> */ -/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com) */ -/* */ -/* NXAGENT, NX protocol compression and NX extensions to this software */ -/* are copyright of the aforementioned persons and companies. */ -/* */ -/* Redistribution and use of the present software is allowed according */ -/* to terms specified in the file LICENSE which comes in the source */ -/* distribution. */ -/* */ -/* All rights reserved. */ -/* */ -/* NOTE: This software has received contributions from various other */ -/* contributors, only the core maintainers and supporters are listed as */ -/* copyright holders. Please contact us, if you feel you should be listed */ -/* as copyright holder, as well. */ -/* */ -/**************************************************************************/ - -#include <signal.h> -#include <stdio.h> - -#ifdef _XSERVER64 - -#include "scrnintstr.h" -#include "Agent.h" -#define GC XlibGC -#define Pixmap XlibPixmap -#define PIXEL_ALREADY_TYPEDEFED - -#endif /* _XSERVER64 */ - -#include "pixmapstr.h" -#include "regionstr.h" -#include "resource.h" -#include "../../include/gc.h" -#include "../../include/window.h" - -#include "X11/include/xpm_nxagent.h" - -#include "Agent.h" -#include "Pixmaps.h" -#include "Display.h" -#include "Holder.h" -#include "Icons.h" - -#include NXAGENT_PLACEHOLDER_NAME - -#define MAXDEPTH 32 - -#define PLACEHOLDER_WIDTH 14 -#define PLACEHOLDER_HEIGHT 16 - -#define PLACEHOLDER_BORDER_COLOR_DARK 0x000000 -#define PLACEHOLDER_BORDER_COLOR_LIGHT 0xB2B2B2 - -/* - * Set here the required log level. - */ - -#define PANIC -#define WARNING -#undef TEST -#undef DEBUG -#undef DUMP - -static Pixmap nxagentPlaceholderPixmaps[MAXDEPTH + 1]; - -void nxagentMarkPlaceholderNotLoaded(int depth) -{ - nxagentPlaceholderPixmaps[depth] = 0; -} - -void nxagentInitPlaceholder(int depth) -{ - int status; - XpmAttributes attributes; - - attributes.valuemask = XpmDepth | XpmSize; - attributes.depth = depth; - - status = XpmCreatePixmapFromData(nxagentDisplay, DefaultRootWindow(nxagentDisplay), - placeholderXpm, nxagentPlaceholderPixmaps + depth, NULL, &attributes); - - if (status != Success) - { - FatalError("Error: Failed to create the placeholder pixmap.\n"); - } - - #ifdef TEST - fprintf(stderr, "nxagentInitPlaceholder: Created pixmap [0x%lx] with geometry [%d,%d] for depth [%d].\n", - nxagentPlaceholderPixmaps[depth], attributes.width, attributes.height, depth); - #endif -} - -void nxagentApplyPlaceholder(Drawable drawable, int x, int y, - int w, int h, int depth) -{ - /* - * Instead of the image, a white rectangle that - * covers the pixmap area is drawn, alongside - * with a black and grey line that outlines the - * boundaries of the affected area. - */ - - GC gc; - XGCValues value; - XPoint points[3]; - - value.foreground = 0xffffffff; - value.background = 0x00000000; - value.plane_mask = 0xffffffff; - value.fill_style = FillSolid; - - /* - * FIXME: Should we use a gc cache to save - * some bandwidth? - */ - - gc = XCreateGC(nxagentDisplay, drawable, GCBackground | - GCForeground | GCFillStyle | GCPlaneMask, &value); - - XFillRectangle(nxagentDisplay, drawable, gc, x, y, w, h); - - if (depth == 1) - { - return; - } - - value.foreground = PLACEHOLDER_BORDER_COLOR_DARK; - value.line_style = LineSolid; - value.line_width = 1; - - points[0].x = x; - points[0].y = y + h - 1; - points[1].x = x; - points[1].y = y; - points[2].x = x + w - 1; - points[2].y = y; - - XChangeGC(nxagentDisplay, gc, GCForeground | GCLineWidth | GCLineStyle, &value); - XDrawLines(nxagentDisplay, drawable, gc, points, 3, CoordModeOrigin); - - value.foreground = PLACEHOLDER_BORDER_COLOR_LIGHT; - value.line_style = LineSolid; - value.line_width = 1; - - points[0].x = x; - points[0].y = y + h - 1; - points[1].x = x + w - 1; - points[1].y = y + h - 1; - points[2].x = x + w - 1; - points[2].y = y; - - XChangeGC(nxagentDisplay, gc, GCForeground | GCLineWidth | GCLineStyle, &value); - XDrawLines(nxagentDisplay, drawable, gc, points, 3, CoordModeOrigin); - - /* - * We are going to apply place holder only if on region - * we have enough space for the placeholder plus three - * pixel for spacing and one for region border. - */ - - if ((w >= PLACEHOLDER_WIDTH + 8) && (h >= PLACEHOLDER_HEIGHT + 8)) - { - #ifdef TEST - fprintf(stderr, "nxagentApplyPlaceholder: drawable %lx placeholder %lx from %d %d pixmap size is %d %d " - "depth %d\n", drawable, nxagentPlaceholderPixmaps[depth], x, y, w, h, depth); - #endif - - if (nxagentPlaceholderPixmaps[depth] == 0) - { - nxagentInitPlaceholder(depth); - } - - XCopyArea(nxagentDisplay, nxagentPlaceholderPixmaps[depth], - drawable, gc, 0, 0, PLACEHOLDER_WIDTH, PLACEHOLDER_HEIGHT, x + 4, y + 4); - - } - - XFreeGC(nxagentDisplay, gc); -} - -#ifdef DUMP - -static char hexdigit(char c) -{ - char map[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', '?'}; - - return map[c]; -} - -/* -FIXME: Please, check the implementation of the same - function in nxcomp. -*/ -char *nxagentChecksum(char *string, int length) -{ - static char md5_output[MD5_DIGEST_LENGTH * 2 + 1]; - static char md5[MD5_DIGEST_LENGTH]; - char * ret; - int i; - - memset(md5, 0, sizeof(md5)); - memset(md5_output, 0, sizeof(md5_output)); - - ret = MD5(string, length, md5); - - for (i = 0; i < MD5_DIGEST_LENGTH; i++) - { - char c = md5[i]; - - md5_output[i * 2 + 0] = hexdigit((c >> 0) & 0xF); - md5_output[i * 2 + 1] = hexdigit((c >> 4) & 0xF); - } - - return md5_output; -} - -#else - -const char *nxagentChecksum(char *data, int size) -{ - return ""; -} - -#endif diff --git a/nx-X11/programs/Xserver/hw/nxagent/Holder.h b/nx-X11/programs/Xserver/hw/nxagent/Holder.h deleted file mode 100644 index d1378ee03..000000000 --- a/nx-X11/programs/Xserver/hw/nxagent/Holder.h +++ /dev/null @@ -1,35 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */ -/* Copyright (c) 2008-2014 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> */ -/* Copyright (c) 2011-2016 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/ -/* Copyright (c) 2014-2016 Mihai Moldovan <ionic@ionic.de> */ -/* Copyright (c) 2014-2016 Ulrich Sibiller <uli42@gmx.de> */ -/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com) */ -/* */ -/* NXAGENT, NX protocol compression and NX extensions to this software */ -/* are copyright of the aforementioned persons and companies. */ -/* */ -/* Redistribution and use of the present software is allowed according */ -/* to terms specified in the file LICENSE which comes in the source */ -/* distribution. */ -/* */ -/* All rights reserved. */ -/* */ -/* NOTE: This software has received contributions from various other */ -/* contributors, only the core maintainers and supporters are listed as */ -/* copyright holders. Please contact us, if you feel you should be listed */ -/* as copyright holder, as well. */ -/* */ -/**************************************************************************/ - -#ifndef __Holder_H__ -#define __Holder_H__ - -void nxagentMarkPlaceholderNotLoaded(int depth); -void nxagentInitPlaceholder(int depth); -void nxagentApplyPlaceholder(Drawable drawable, int x, int y, int w, int h, int depth); - -const char *nxagentChecksum(char *data, int size); - -#endif /* __Holder_H__ */ diff --git a/nx-X11/programs/Xserver/hw/nxagent/Icons.h b/nx-X11/programs/Xserver/hw/nxagent/Icons.h index 7b2280ab6..a8a155cec 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Icons.h +++ b/nx-X11/programs/Xserver/hw/nxagent/Icons.h @@ -34,6 +34,4 @@ #define X2GOAGENT_ICON_NAME "x2goagent.xpm" -#define NXAGENT_PLACEHOLDER_NAME "nxmissing.xpm" - #endif /* __Icons_H__ */ diff --git a/nx-X11/programs/Xserver/hw/nxagent/Imakefile b/nx-X11/programs/Xserver/hw/nxagent/Imakefile index c300e41db..58fb43403 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Imakefile +++ b/nx-X11/programs/Xserver/hw/nxagent/Imakefile @@ -52,8 +52,7 @@ SRCS = \ Clipboard.c \ Splash.c \ Split.c \ - Holder.c \ - Reconnect.c \ + Reconnect.c \ Error.c \ Atoms.c \ Trap.c \ @@ -111,7 +110,6 @@ OBJS = \ Clipboard.o \ Splash.o \ Split.o \ - Holder.o \ Reconnect.o \ Error.o \ Atoms.o \ diff --git a/nx-X11/programs/Xserver/hw/nxagent/Pixmap.c b/nx-X11/programs/Xserver/hw/nxagent/Pixmap.c index 7a0fcd535..f8241d4d7 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Pixmap.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Pixmap.c @@ -47,7 +47,6 @@ #include "Visual.h" #include "Client.h" #include "Events.h" -#include "Holder.h" #include "Args.h" #include "Utils.h" diff --git a/nx-X11/programs/Xserver/hw/nxagent/Screen.c b/nx-X11/programs/Xserver/hw/nxagent/Screen.c index 2b1146496..d7b7fe095 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c @@ -76,7 +76,6 @@ is" without express or implied warranty. #include "Client.h" #include "Options.h" #include "Splash.h" -#include "Holder.h" #include "Render.h" #include "Trap.h" #include "Keyboard.h" @@ -1453,17 +1452,6 @@ Bool nxagentOpenScreen(ScreenPtr pScreen, nxagentInitSplitResources(); nxagentInitUnpackResources(); - /* - * Initializing the pixmaps that will serve as - * "placeholders" in lazy encoding. We need one - * pixmap for each depth. - */ - - for (int i = 0; i < numDepths; i++) - { - nxagentMarkPlaceholderNotLoaded(i); - } - #ifdef WATCH fprintf(stderr, "nxagentOpenScreen: Watchpoint 7.\n"); diff --git a/nx-X11/programs/Xserver/hw/nxagent/Utils.h b/nx-X11/programs/Xserver/hw/nxagent/Utils.h index e61a79144..c578549dc 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Utils.h +++ b/nx-X11/programs/Xserver/hw/nxagent/Utils.h @@ -44,6 +44,17 @@ static inline const char * validateString(const char *str) { return str ? str : "(null)"; } +/* + * nxagentChecksum used to be in Holder.c but was broken beyond + * repair. As Holder.c was removed we put it here as a stub until we + * need it for debugging. + */ + +static inline const char *nxagentChecksum(char *data, int size) +{ + return "not_implemented"; +} + #define SAFE_XFree(what) do {if (what) {XFree(what); what = NULL;}} while (0) #define SAFE_free(what) do {free(what); what = NULL;} while (0) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Window.c b/nx-X11/programs/Xserver/hw/nxagent/Window.c index fadf6ffb1..88110e7dc 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Window.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Window.c @@ -59,7 +59,6 @@ #include "Reconnect.h" #include "Dialog.h" #include "Splash.h" -#include "Holder.h" #include "Init.h" #include "Composite.h" #include "Events.h" diff --git a/nx-X11/programs/Xserver/hw/nxagent/nxmissing.xpm b/nx-X11/programs/Xserver/hw/nxagent/nxmissing.xpm deleted file mode 100644 index e6cf0fcd6..000000000 --- a/nx-X11/programs/Xserver/hw/nxagent/nxmissing.xpm +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */ -/* Copyright (c) 2008-2014 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> */ -/* Copyright (c) 2011-2016 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/ -/* Copyright (c) 2014-2016 Mihai Moldovan <ionic@ionic.de> */ -/* Copyright (c) 2014-2016 Ulrich Sibiller <uli42@gmx.de> */ -/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com) */ -/* */ -/* NXAGENT, NX protocol compression and NX extensions to this software */ -/* are copyright of the aforementioned persons and companies. */ -/* */ -/* Redistribution and use of the present software is allowed according */ -/* to terms specified in the file LICENSE which comes in the source */ -/* distribution. */ -/* */ -/* All rights reserved. */ -/* */ -/* NOTE: This software has received contributions from various other */ -/* contributors, only the core maintainers and supporters are listed as */ -/* copyright holders. Please contact us, if you feel you should be listed */ -/* as copyright holder, as well. */ -/* */ -/**************************************************************************/ - -/* XPM */ -static char *placeholderXpm[] = { -/* columns rows colors chars-per-pixel */ -"14 16 10 1", -" c #000000", -". c #0000FF", -"X c #008400", -"o c #00FF00", -"O c #00FFFF", -"+ c #FF0000", -"@ c #FF00FF", -"# c #848484", -"$ c #BDBDBD", -"% c #FFFFFF", -/* pixels */ -" #%%%", -" %%%%%%%%%##%%", -" %$$$$$$$$#%#%", -" %$$$XX$$$#%%#", -" %$$XoX $$ ", -" %$$XXX $$$$% ", -" %$$$ $$$$$% ", -" %$$$$$$... % ", -" %$+$$$$.O. % ", -" %$@+$$$... % ", -" %$@@+$$ $% ", -" %$@@@+$$$$$% ", -" %$ +$$$$% ", -" %$$$$$$$$$$% ", -" %%%%%%%%%%%% ", -" " -}; |