[X2Go-Commits] [nx-libs] 14/14: Unbrand NX Agent Startup Screen / Brand X2Go Agent Startup Screen (999_nxagent_unbrand-nxagent-brand-x2goagent.full.patch).
git-admin at x2go.org
git-admin at x2go.org
Fri Feb 13 13:59:15 CET 2015
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 1fd8551f1632efbc2655c9293087bba08cf2f0c9
Author: Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>
Date: Fri Feb 13 13:57:39 2015 +0100
Unbrand NX Agent Startup Screen / Brand X2Go Agent Startup Screen (999_nxagent_unbrand-nxagent-brand-x2goagent.full.patch).
When launched with NX Agent flavour, the startup screen gets unbranded by
this patch (the !M logo does not get shown).
When launched with X2Go Agent flavour, the startup screen gets branded
with the X2GO logo.
---
...gent_unbrand-nxagent-brand-x2goagent.full.patch | 367 --------------------
debian/patches/series | 1 -
nx-X11/programs/Xserver/hw/nxagent/Display.c | 40 +--
nx-X11/programs/Xserver/hw/nxagent/Keyboard.c | 18 +-
nx-X11/programs/Xserver/hw/nxagent/Splash.c | 162 ++++++---
nx-X11/programs/Xserver/hw/nxagent/Splash.h | 1 +
nx-X11/programs/Xserver/os/oscolor.c | 14 +-
7 files changed, 158 insertions(+), 445 deletions(-)
diff --git a/debian/patches/999_nxagent_unbrand-nxagent-brand-x2goagent.full.patch b/debian/patches/999_nxagent_unbrand-nxagent-brand-x2goagent.full.patch
deleted file mode 100644
index 62c85cf..0000000
--- a/debian/patches/999_nxagent_unbrand-nxagent-brand-x2goagent.full.patch
+++ /dev/null
@@ -1,367 +0,0 @@
-Description: Unbrand NX Agent Startup Screen / Brand X2Go Agent Startup Screen
- When launched with NX Agent flavour, the startup screen gets unbranded by
- this patch (the !M logo does not get shown).
- .
- When launched with X2Go Agent flavour, the startup screen gets branded
- with the X2GO logo.
-Forwarded: not-needed
-Author: Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>
-Last-Update: 2012-01-11
---- a/nx-X11/programs/Xserver/hw/nxagent/Splash.c
-+++ b/nx-X11/programs/Xserver/hw/nxagent/Splash.c
-@@ -35,6 +35,7 @@
- #include "Windows.h"
- #include "Atoms.h"
- #include "Trap.h"
-+#include "Init.h"
-
- /*
- * Set here the required log level.
-@@ -53,6 +54,7 @@
- int nxagentLogoWhite;
- int nxagentLogoRed;
- int nxagentLogoBlack;
-+int nxagentLogoGray;
-
- void nxagentPaintLogo(Window win, GC gc, int scale, int width, int height);
-
-@@ -166,6 +168,15 @@
- XPoint m[12];
- int w, h, c, w2, h2;
-
-+ /*
-+ * Show only X2GO Logo when running as X2Go Agent
-+ */
-+ if(! nxagentX2go)
-+ {
-+ nxagentPixmapLogo = 0L;
-+ return;
-+ }
-+
- #ifdef DEBUG
- fprintf(stderr, "nxagenShowtLogo: Got called.\n");
- #endif
-@@ -218,75 +229,146 @@
- XSetForeground(nxagentDisplay, gc, nxagentLogoRed);
- XSetBackground(nxagentDisplay, gc, nxagentLogoWhite);
-
-- rect[0].x = w2-10*c; rect[0].y = h2-8*c;
-- rect[1].x = w2-10*c; rect[1].y = h2+8*c;
-- rect[2].x = w2+10*c; rect[2].y = h2+8*c;
-- rect[3].x = w2+10*c; rect[3].y = h2-8*c;
-+ /*
-+ * Draw X2GO Logo
-+ */
-
-+ /*
-+ * Begin 'X'.
-+ */
-+
-+ XSetForeground(nxagentDisplay, gc, nxagentLogoGray);
-+ XSetBackground(nxagentDisplay, gc, nxagentLogoWhite);
-+ rect[0].x = w2-7*c; rect[0].y = h2-5*c;
-+ rect[1].x = w2-8*c; rect[1].y = h2-5*c;
-+ rect[2].x = w2-4*c; rect[2].y = h2+3*c;
-+ rect[3].x = w2-3*c; rect[3].y = h2+3*c;
- XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
-
-- #ifdef NXAGENT_LOGO_DEBUG
-- fprintf(stderr, "filled red rect\n");
-- #endif
-+ rect[0].x = w2-4*c; rect[0].y = h2-5*c;
-+ rect[1].x = w2-3*c; rect[1].y = h2-5*c;
-+ rect[2].x = w2-7*c; rect[2].y = h2+3*c;
-+ rect[3].x = w2-8*c; rect[3].y = h2+3*c;
-+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
-
-- rect[0].x = w2-9*c; rect[0].y = h2-7*c;
-- rect[1].x = w2-9*c; rect[1].y = h2+7*c;
-- rect[2].x = w2+9*c; rect[2].y = h2+7*c;
-- rect[3].x = w2+9*c; rect[3].y = h2-7*c;
-+ /*
-+ * End 'X'.
-+ */
-
-- XSetForeground(nxagentDisplay, gc, nxagentLogoWhite);
-- XSetBackground(nxagentDisplay, gc, nxagentLogoRed);
-+ /*
-+ * Start '2'.
-+ */
-+
-+ rect[0].x = w2-2*c; rect[0].y = h2-5*c;
-+ rect[1].x = w2-1*c; rect[1].y = h2-5*c;
-+ rect[2].x = w2-1*c; rect[2].y = h2-3*c;
-+ rect[3].x = w2-2*c; rect[3].y = h2-3*c;
-+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
-+
-+ rect[0].x = w2-2*c; rect[0].y = h2-5*c;
-+ rect[1].x = w2+2*c; rect[1].y = h2-5*c;
-+ rect[2].x = w2+2*c; rect[2].y = h2-4*c;
-+ rect[3].x = w2-2*c; rect[3].y = h2-4*c;
-+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
-
-+ rect[0].x = w2+1*c; rect[0].y = h2-5*c;
-+ rect[1].x = w2+2*c; rect[1].y = h2-5*c;
-+ rect[2].x = w2+2*c; rect[2].y = h2-2*c;
-+ rect[3].x = w2+1*c; rect[3].y = h2-2*c;
- XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
-
-+ rect[0].x = w2+2*c; rect[0].y = h2-2*c;
-+ rect[1].x = w2+1*c; rect[1].y = h2-2*c;
-+ rect[2].x = w2-2*c; rect[2].y = h2+2*c;
-+ rect[3].x = w2-1*c; rect[3].y = h2+2*c;
-+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
-+
-+
-+ rect[0].x = w2-2*c; rect[0].y = h2+2*c;
-+ rect[1].x = w2+2*c; rect[1].y = h2+2*c;
-+ rect[2].x = w2+2*c; rect[2].y = h2+3*c;
-+ rect[3].x = w2-2*c; rect[3].y = h2+3*c;
-+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
- /*
-- * Begin 'M'.
-+ * End '2'.
- */
-
-- m[0].x = w2-3*c; m[0].y = h2-5*c;
-- m[1].x = w2+7*c; m[1].y = h2-5*c;
-- m[2].x = w2+7*c; m[2].y = h2+5*c;
-- m[3].x = w2+5*c; m[3].y = h2+5*c;
-- m[4].x = w2+5*c; m[4].y = h2-3*c;
-- m[5].x = w2+3*c; m[5].y = h2-3*c;
-- m[6].x = w2+3*c; m[6].y = h2+5*c;
-- m[7].x = w2+1*c; m[7].y = h2+5*c;
-- m[8].x = w2+1*c; m[8].y = h2-3*c;
-- m[9].x = w2-1*c; m[9].y = h2-3*c;
-- m[10].x = w2-1*c; m[10].y = h2+5*c;
-- m[11].x = w2-3*c; m[11].y = h2+5*c;
-+ /*
-+ * Start 'G'.
-+ */
-
-- XSetForeground(nxagentDisplay, gc, nxagentLogoRed);
-- XSetBackground(nxagentDisplay, gc, nxagentLogoWhite);
-+ rect[0].x = w2+3*c; rect[0].y = h2-5*c;
-+ rect[1].x = w2+7*c; rect[1].y = h2-5*c;
-+ rect[2].x = w2+7*c; rect[2].y = h2-4*c;
-+ rect[3].x = w2+3*c; rect[3].y = h2-4*c;
-+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
-
-- XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, m, 12, Nonconvex, CoordModeOrigin);
-+ rect[0].x = w2+3*c; rect[0].y = h2-5*c;
-+ rect[1].x = w2+4*c; rect[1].y = h2-5*c;
-+ rect[2].x = w2+4*c; rect[2].y = h2+3*c;
-+ rect[3].x = w2+3*c; rect[3].y = h2+3*c;
-+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
-
-+ rect[0].x = w2+3*c; rect[0].y = h2+2*c;
-+ rect[1].x = w2+7*c; rect[1].y = h2+2*c;
-+ rect[2].x = w2+7*c; rect[2].y = h2+3*c;
-+ rect[3].x = w2+3*c; rect[3].y = h2+3*c;
-+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
-+
-+ rect[0].x = w2+6*c; rect[0].y = h2-5*c;
-+ rect[1].x = w2+7*c; rect[1].y = h2-5*c;
-+ rect[2].x = w2+7*c; rect[2].y = h2-3*c;
-+ rect[3].x = w2+6*c; rect[3].y = h2-3*c;
-+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
-+
-+ rect[0].x = w2+6*c; rect[0].y = h2-0*c;
-+ rect[1].x = w2+7*c; rect[1].y = h2-0*c;
-+ rect[2].x = w2+7*c; rect[2].y = h2+3*c;
-+ rect[3].x = w2+6*c; rect[3].y = h2+3*c;
-+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
-+
-+ rect[0].x = w2+5*c; rect[0].y = h2-1*c;
-+ rect[1].x = w2+7*c; rect[1].y = h2-1*c;
-+ rect[2].x = w2+7*c; rect[2].y = h2+0*c;
-+ rect[3].x = w2+5*c; rect[3].y = h2+0*c;
-+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
- /*
-- * End 'M'.
-+ * End 'G'.
- */
-
- /*
-- * Begin '!'.
-+ * Start 'O'.
- */
-
-- rect[0].x = w2-7*c; rect[0].y = h2-5*c;
-- rect[1].x = w2-5*c; rect[1].y = h2-5*c;
-- rect[2].x = w2-5*c; rect[2].y = h2+2*c;
-- rect[3].x = w2-7*c; rect[3].y = h2+2*c;
-+ rect[0].x = w2+8*c; rect[0].y = h2-5*c;
-+ rect[1].x = w2+12*c; rect[1].y = h2-5*c;
-+ rect[2].x = w2+12*c; rect[2].y = h2-4*c;
-+ rect[3].x = w2+8*c; rect[3].y = h2-4*c;
-+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
-
-+ rect[0].x = w2+8*c; rect[0].y = h2+3*c;
-+ rect[1].x = w2+12*c; rect[1].y = h2+3*c;
-+ rect[2].x = w2+12*c; rect[2].y = h2+2*c;
-+ rect[3].x = w2+8*c; rect[3].y = h2+2*c;
- XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
-
-- rect[0].x = w2-7*c; rect[0].y = h2+3*c;
-- rect[1].x = w2-5*c; rect[1].y = h2+3*c;
-- rect[2].x = w2-5*c; rect[2].y = h2+5*c;
-- rect[3].x = w2-7*c; rect[3].y = h2+5*c;
-+ rect[0].x = w2+8*c; rect[0].y = h2-5*c;
-+ rect[1].x = w2+9*c; rect[1].y = h2-5*c;
-+ rect[2].x = w2+9*c; rect[2].y = h2+3*c;
-+ rect[3].x = w2+8*c; rect[3].y = h2+3*c;
-+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
-
-+ rect[0].x = w2+11*c; rect[0].y = h2-5*c;
-+ rect[1].x = w2+12*c; rect[1].y = h2-5*c;
-+ rect[2].x = w2+12*c; rect[2].y = h2+3*c;
-+ rect[3].x = w2+11*c; rect[3].y = h2+3*c;
- XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
-
- /*
-- * End 'M'.
-+ * End 'O'.
- */
-
-+
- XSetWindowBackgroundPixmap(nxagentDisplay, win, nxagentPixmapLogo);
-
- #ifdef NXAGENT_LOGO_DEBUG
---- a/nx-X11/programs/Xserver/hw/nxagent/Display.c
-+++ b/nx-X11/programs/Xserver/hw/nxagent/Display.c
-@@ -1430,22 +1430,10 @@
- g = pV.green_mask;
- b = pV.blue_mask;
-
-- if (!pV.red_mask || !pV.green_mask || !pV.blue_mask)
-- {
-- nxagentLogoBlack = 0x000000;
-- nxagentLogoRed = 0xff0000;
-- nxagentLogoWhite = 0xffffff;
-- }
-- else
-- {
-- for (or=0, off=0x800000; (r&(off>>or)) == 0; or++);
-- for (og=0, off=0x800000; (g&(off>>og)) == 0; og++);
-- for (ob=0, off=0x800000; (b&(off>>ob)) == 0; ob++);
--
-- nxagentLogoRed = nxagentLogoColor(0xff0000);
-- nxagentLogoBlack = nxagentLogoColor(0x000000);
-- nxagentLogoWhite = 0xffffff;
-- }
-+ nxagentLogoBlack = 0x000000;
-+ nxagentLogoRed = 0xff0000;
-+ nxagentLogoWhite = 0xffffff;
-+ nxagentLogoGray = 0x222222;
-
- #ifdef WATCH
-
-@@ -2696,22 +2684,10 @@
- g = pV.green_mask;
- b = pV.blue_mask;
-
-- if (!pV.red_mask || !pV.green_mask || !pV.blue_mask)
-- {
-- nxagentLogoBlack = 0x000000;
-- nxagentLogoRed = 0xff0000;
-- nxagentLogoWhite = 0xffffff;
-- }
-- else
-- {
-- for (or=0, off=0x800000; (r&(off>>or)) == 0; or++);
-- for (og=0, off=0x800000; (g&(off>>og)) == 0; og++);
-- for (ob=0, off=0x800000; (b&(off>>ob)) == 0; ob++);
--
-- nxagentLogoRed = nxagentLogoColor(0xff0000);
-- nxagentLogoBlack = nxagentLogoColor(0x000000);
-- nxagentLogoWhite = 0xffffff;
-- }
-+ nxagentLogoBlack = 0x000000;
-+ nxagentLogoRed = 0xff0000;
-+ nxagentLogoWhite = 0xffffff;
-+ nxagentLogoGray = 0x222222;
-
- useXpmIcon = nxagentMakeIcon(nxagentDisplay, &nxagentIconPixmap, &nxagentIconShape);
-
---- a/nx-X11/programs/Xserver/hw/nxagent/Splash.h
-+++ b/nx-X11/programs/Xserver/hw/nxagent/Splash.h
-@@ -33,6 +33,7 @@
- extern int nxagentLogoWhite;
- extern int nxagentLogoRed;
- extern int nxagentLogoBlack;
-+extern int nxagentLogoGray;
-
- extern Window nxagentSplashWindow;
-
---- a/nx-X11/programs/Xserver/os/oscolor.c
-+++ b/nx-X11/programs/Xserver/os/oscolor.c
-@@ -53,7 +53,19 @@
- #include <sys/stat.h>
- #include <unistd.h>
-
--static char* nxAltRgbPaths[] = {"/etc/nxagent/rgb", "/usr/share/nx/rgb", "/usr/local/share/nx/rgb", "/usr/NX/share/rgb", "/usr/share/X11/rgb", "/etc/X11/rgb"};
-+/* FIXME: we need more intelligent code (like provided by the nxagentX2go
-+ * var in hw/nxagent/Init.h) to detect our current runtime mode (running
-+ * as x2goagent, running as nxagent)
-+ */
-+static char* nxAltRgbPaths[] = {"/etc/x2go/rgb", \
-+ "/usr/share/x2go/rgb", \
-+ "/usr/local/share/x2go/rgb", \
-+ "/etc/nxagent/rgb", \
-+ "/usr/share/nx/rgb", \
-+ "/usr/local/share/nx/rgb", \
-+ "/usr/NX/share/rgb", \
-+ "/usr/share/X11/rgb", \
-+ "/etc/X11/rgb"};
- static char _NXRgbPath[1024];
-
- #endif
---- a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c
-+++ b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c
-@@ -62,6 +62,7 @@
-
- #include "globals.h"
- #include "property.h"
-+#include "Init.h"
-
- #include <X11/extensions/XKB.h>
-
-@@ -138,8 +139,11 @@
- #ifndef XKB_ALTERNATE_BASE_DIRECTORY
- #define XKB_ALTERNATE_BASE_DIRECTORY "/usr/X11R6/lib/X11/xkb"
- #endif
--#ifndef XKB_CONFIG_FILE
--#define XKB_CONFIG_FILE "/etc/nxagent/nxagent.keyboard"
-+#ifndef XKB_CONFIG_FILE_NX
-+#define XKB_CONFIG_FILE_NX "/etc/nxagent/nxagent.keyboard"
-+#endif
-+#ifndef XKB_CONFIG_FILE_X2GO
-+#define XKB_CONFIG_FILE_X2GO "/etc/x2go/x2goagent.keyboard"
- #endif
- #ifndef XKB_DFLT_RULES_FILE
- #define XKB_DFLT_RULES_FILE "xfree86"
-@@ -988,7 +992,10 @@
-
- XkbGetControls(nxagentDisplay, XkbAllControlsMask, xkb);
-
-- nxagentXkbConfigFilePathSize = strlen(XKB_CONFIG_FILE);
-+ if (nxagentX2go)
-+ nxagentXkbConfigFilePathSize = strlen(XKB_CONFIG_FILE_X2GO);
-+ else
-+ nxagentXkbConfigFilePathSize = strlen(XKB_CONFIG_FILE_NX);
-
- nxagentXkbConfigFilePath = malloc((nxagentXkbConfigFilePathSize + 1) * sizeof(char));
-
-@@ -997,7 +1004,10 @@
- FatalError("nxagentKeyboardProc: malloc failed.");
- }
-
-- strcpy(nxagentXkbConfigFilePath, XKB_CONFIG_FILE);
-+ if (nxagentX2go)
-+ nxagentXkbConfigFilePathSize = strlen(XKB_CONFIG_FILE_X2GO);
-+ else
-+ nxagentXkbConfigFilePathSize = strlen(XKB_CONFIG_FILE_NX);
-
- #ifdef TEST
- fprintf(stderr, "nxagentKeyboardProc: nxagentXkbConfigFilePath [%s].\n",
diff --git a/debian/patches/series b/debian/patches/series
index 3ee62f3..1a94059 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,4 +1,3 @@
#401_nxcomp_bigrequests-and-genericevent-extensions.full+lite.patch
-999_nxagent_unbrand-nxagent-brand-x2goagent.full.patch
016_nx-X11_install-location.debian.patch
102_xserver-xext_set-securitypolicy-path.debian.patch
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Display.c b/nx-X11/programs/Xserver/hw/nxagent/Display.c
index 201d9dd..b01d66c 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Display.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Display.c
@@ -1430,22 +1430,10 @@ FIXME: Use of nxagentParentWindow is strongly deprecated.
g = pV.green_mask;
b = pV.blue_mask;
- if (!pV.red_mask || !pV.green_mask || !pV.blue_mask)
- {
- nxagentLogoBlack = 0x000000;
- nxagentLogoRed = 0xff0000;
- nxagentLogoWhite = 0xffffff;
- }
- else
- {
- for (or=0, off=0x800000; (r&(off>>or)) == 0; or++);
- for (og=0, off=0x800000; (g&(off>>og)) == 0; og++);
- for (ob=0, off=0x800000; (b&(off>>ob)) == 0; ob++);
-
- nxagentLogoRed = nxagentLogoColor(0xff0000);
- nxagentLogoBlack = nxagentLogoColor(0x000000);
- nxagentLogoWhite = 0xffffff;
- }
+ nxagentLogoBlack = 0x000000;
+ nxagentLogoRed = 0xff0000;
+ nxagentLogoWhite = 0xffffff;
+ nxagentLogoGray = 0x222222;
#ifdef WATCH
@@ -2696,22 +2684,10 @@ Bool nxagentReconnectDisplay(void *p0)
g = pV.green_mask;
b = pV.blue_mask;
- if (!pV.red_mask || !pV.green_mask || !pV.blue_mask)
- {
- nxagentLogoBlack = 0x000000;
- nxagentLogoRed = 0xff0000;
- nxagentLogoWhite = 0xffffff;
- }
- else
- {
- for (or=0, off=0x800000; (r&(off>>or)) == 0; or++);
- for (og=0, off=0x800000; (g&(off>>og)) == 0; og++);
- for (ob=0, off=0x800000; (b&(off>>ob)) == 0; ob++);
-
- nxagentLogoRed = nxagentLogoColor(0xff0000);
- nxagentLogoBlack = nxagentLogoColor(0x000000);
- nxagentLogoWhite = 0xffffff;
- }
+ nxagentLogoBlack = 0x000000;
+ nxagentLogoRed = 0xff0000;
+ nxagentLogoWhite = 0xffffff;
+ nxagentLogoGray = 0x222222;
useXpmIcon = nxagentMakeIcon(nxagentDisplay, &nxagentIconPixmap, &nxagentIconShape);
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c
index 1637f0c..a51d19e 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c
@@ -62,6 +62,7 @@ is" without express or implied warranty.
#include "globals.h"
#include "property.h"
+#include "Init.h"
#include <X11/extensions/XKB.h>
@@ -138,8 +139,11 @@ extern Status XkbGetControls(
#ifndef XKB_ALTERNATE_BASE_DIRECTORY
#define XKB_ALTERNATE_BASE_DIRECTORY "/usr/X11R6/lib/X11/xkb"
#endif
-#ifndef XKB_CONFIG_FILE
-#define XKB_CONFIG_FILE "/etc/nxagent/nxagent.keyboard"
+#ifndef XKB_CONFIG_FILE_NX
+#define XKB_CONFIG_FILE_NX "/etc/nxagent/nxagent.keyboard"
+#endif
+#ifndef XKB_CONFIG_FILE_X2GO
+#define XKB_CONFIG_FILE_X2GO "/etc/x2go/x2goagent.keyboard"
#endif
#ifndef XKB_DFLT_RULES_FILE
#define XKB_DFLT_RULES_FILE "xfree86"
@@ -988,7 +992,10 @@ XkbError:
XkbGetControls(nxagentDisplay, XkbAllControlsMask, xkb);
- nxagentXkbConfigFilePathSize = strlen(XKB_CONFIG_FILE);
+ if (nxagentX2go)
+ nxagentXkbConfigFilePathSize = strlen(XKB_CONFIG_FILE_X2GO);
+ else
+ nxagentXkbConfigFilePathSize = strlen(XKB_CONFIG_FILE_NX);
nxagentXkbConfigFilePath = malloc((nxagentXkbConfigFilePathSize + 1) * sizeof(char));
@@ -997,7 +1004,10 @@ XkbError:
FatalError("nxagentKeyboardProc: malloc failed.");
}
- strcpy(nxagentXkbConfigFilePath, XKB_CONFIG_FILE);
+ if (nxagentX2go)
+ nxagentXkbConfigFilePathSize = strlen(XKB_CONFIG_FILE_X2GO);
+ else
+ nxagentXkbConfigFilePathSize = strlen(XKB_CONFIG_FILE_NX);
#ifdef TEST
fprintf(stderr, "nxagentKeyboardProc: nxagentXkbConfigFilePath [%s].\n",
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Splash.c b/nx-X11/programs/Xserver/hw/nxagent/Splash.c
index 235c48c..abb0872 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Splash.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Splash.c
@@ -35,6 +35,7 @@
#include "Windows.h"
#include "Atoms.h"
#include "Trap.h"
+#include "Init.h"
/*
* Set here the required log level.
@@ -53,6 +54,7 @@ int nxagentLogoDepth;
int nxagentLogoWhite;
int nxagentLogoRed;
int nxagentLogoBlack;
+int nxagentLogoGray;
void nxagentPaintLogo(Window win, GC gc, int scale, int width, int height);
@@ -166,6 +168,15 @@ void nxagentPaintLogo(Window win, GC gc, int scale, int width, int height)
XPoint m[12];
int w, h, c, w2, h2;
+ /*
+ * Show only X2GO Logo when running as X2Go Agent
+ */
+ if(! nxagentX2go)
+ {
+ nxagentPixmapLogo = 0L;
+ return;
+ }
+
#ifdef DEBUG
fprintf(stderr, "nxagenShowtLogo: Got called.\n");
#endif
@@ -218,75 +229,146 @@ void nxagentPaintLogo(Window win, GC gc, int scale, int width, int height)
XSetForeground(nxagentDisplay, gc, nxagentLogoRed);
XSetBackground(nxagentDisplay, gc, nxagentLogoWhite);
- rect[0].x = w2-10*c; rect[0].y = h2-8*c;
- rect[1].x = w2-10*c; rect[1].y = h2+8*c;
- rect[2].x = w2+10*c; rect[2].y = h2+8*c;
- rect[3].x = w2+10*c; rect[3].y = h2-8*c;
+ /*
+ * Draw X2GO Logo
+ */
+ /*
+ * Begin 'X'.
+ */
+
+ XSetForeground(nxagentDisplay, gc, nxagentLogoGray);
+ XSetBackground(nxagentDisplay, gc, nxagentLogoWhite);
+ rect[0].x = w2-7*c; rect[0].y = h2-5*c;
+ rect[1].x = w2-8*c; rect[1].y = h2-5*c;
+ rect[2].x = w2-4*c; rect[2].y = h2+3*c;
+ rect[3].x = w2-3*c; rect[3].y = h2+3*c;
XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
- #ifdef NXAGENT_LOGO_DEBUG
- fprintf(stderr, "filled red rect\n");
- #endif
+ rect[0].x = w2-4*c; rect[0].y = h2-5*c;
+ rect[1].x = w2-3*c; rect[1].y = h2-5*c;
+ rect[2].x = w2-7*c; rect[2].y = h2+3*c;
+ rect[3].x = w2-8*c; rect[3].y = h2+3*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
- rect[0].x = w2-9*c; rect[0].y = h2-7*c;
- rect[1].x = w2-9*c; rect[1].y = h2+7*c;
- rect[2].x = w2+9*c; rect[2].y = h2+7*c;
- rect[3].x = w2+9*c; rect[3].y = h2-7*c;
+ /*
+ * End 'X'.
+ */
- XSetForeground(nxagentDisplay, gc, nxagentLogoWhite);
- XSetBackground(nxagentDisplay, gc, nxagentLogoRed);
+ /*
+ * Start '2'.
+ */
+
+ rect[0].x = w2-2*c; rect[0].y = h2-5*c;
+ rect[1].x = w2-1*c; rect[1].y = h2-5*c;
+ rect[2].x = w2-1*c; rect[2].y = h2-3*c;
+ rect[3].x = w2-2*c; rect[3].y = h2-3*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+ rect[0].x = w2-2*c; rect[0].y = h2-5*c;
+ rect[1].x = w2+2*c; rect[1].y = h2-5*c;
+ rect[2].x = w2+2*c; rect[2].y = h2-4*c;
+ rect[3].x = w2-2*c; rect[3].y = h2-4*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+ rect[0].x = w2+1*c; rect[0].y = h2-5*c;
+ rect[1].x = w2+2*c; rect[1].y = h2-5*c;
+ rect[2].x = w2+2*c; rect[2].y = h2-2*c;
+ rect[3].x = w2+1*c; rect[3].y = h2-2*c;
XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+ rect[0].x = w2+2*c; rect[0].y = h2-2*c;
+ rect[1].x = w2+1*c; rect[1].y = h2-2*c;
+ rect[2].x = w2-2*c; rect[2].y = h2+2*c;
+ rect[3].x = w2-1*c; rect[3].y = h2+2*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+
+ rect[0].x = w2-2*c; rect[0].y = h2+2*c;
+ rect[1].x = w2+2*c; rect[1].y = h2+2*c;
+ rect[2].x = w2+2*c; rect[2].y = h2+3*c;
+ rect[3].x = w2-2*c; rect[3].y = h2+3*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
/*
- * Begin 'M'.
+ * End '2'.
*/
- m[0].x = w2-3*c; m[0].y = h2-5*c;
- m[1].x = w2+7*c; m[1].y = h2-5*c;
- m[2].x = w2+7*c; m[2].y = h2+5*c;
- m[3].x = w2+5*c; m[3].y = h2+5*c;
- m[4].x = w2+5*c; m[4].y = h2-3*c;
- m[5].x = w2+3*c; m[5].y = h2-3*c;
- m[6].x = w2+3*c; m[6].y = h2+5*c;
- m[7].x = w2+1*c; m[7].y = h2+5*c;
- m[8].x = w2+1*c; m[8].y = h2-3*c;
- m[9].x = w2-1*c; m[9].y = h2-3*c;
- m[10].x = w2-1*c; m[10].y = h2+5*c;
- m[11].x = w2-3*c; m[11].y = h2+5*c;
+ /*
+ * Start 'G'.
+ */
- XSetForeground(nxagentDisplay, gc, nxagentLogoRed);
- XSetBackground(nxagentDisplay, gc, nxagentLogoWhite);
+ rect[0].x = w2+3*c; rect[0].y = h2-5*c;
+ rect[1].x = w2+7*c; rect[1].y = h2-5*c;
+ rect[2].x = w2+7*c; rect[2].y = h2-4*c;
+ rect[3].x = w2+3*c; rect[3].y = h2-4*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
- XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, m, 12, Nonconvex, CoordModeOrigin);
+ rect[0].x = w2+3*c; rect[0].y = h2-5*c;
+ rect[1].x = w2+4*c; rect[1].y = h2-5*c;
+ rect[2].x = w2+4*c; rect[2].y = h2+3*c;
+ rect[3].x = w2+3*c; rect[3].y = h2+3*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+ rect[0].x = w2+3*c; rect[0].y = h2+2*c;
+ rect[1].x = w2+7*c; rect[1].y = h2+2*c;
+ rect[2].x = w2+7*c; rect[2].y = h2+3*c;
+ rect[3].x = w2+3*c; rect[3].y = h2+3*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+ rect[0].x = w2+6*c; rect[0].y = h2-5*c;
+ rect[1].x = w2+7*c; rect[1].y = h2-5*c;
+ rect[2].x = w2+7*c; rect[2].y = h2-3*c;
+ rect[3].x = w2+6*c; rect[3].y = h2-3*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+ rect[0].x = w2+6*c; rect[0].y = h2-0*c;
+ rect[1].x = w2+7*c; rect[1].y = h2-0*c;
+ rect[2].x = w2+7*c; rect[2].y = h2+3*c;
+ rect[3].x = w2+6*c; rect[3].y = h2+3*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+ rect[0].x = w2+5*c; rect[0].y = h2-1*c;
+ rect[1].x = w2+7*c; rect[1].y = h2-1*c;
+ rect[2].x = w2+7*c; rect[2].y = h2+0*c;
+ rect[3].x = w2+5*c; rect[3].y = h2+0*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
/*
- * End 'M'.
+ * End 'G'.
*/
/*
- * Begin '!'.
+ * Start 'O'.
*/
- rect[0].x = w2-7*c; rect[0].y = h2-5*c;
- rect[1].x = w2-5*c; rect[1].y = h2-5*c;
- rect[2].x = w2-5*c; rect[2].y = h2+2*c;
- rect[3].x = w2-7*c; rect[3].y = h2+2*c;
+ rect[0].x = w2+8*c; rect[0].y = h2-5*c;
+ rect[1].x = w2+12*c; rect[1].y = h2-5*c;
+ rect[2].x = w2+12*c; rect[2].y = h2-4*c;
+ rect[3].x = w2+8*c; rect[3].y = h2-4*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+ rect[0].x = w2+8*c; rect[0].y = h2+3*c;
+ rect[1].x = w2+12*c; rect[1].y = h2+3*c;
+ rect[2].x = w2+12*c; rect[2].y = h2+2*c;
+ rect[3].x = w2+8*c; rect[3].y = h2+2*c;
XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
- rect[0].x = w2-7*c; rect[0].y = h2+3*c;
- rect[1].x = w2-5*c; rect[1].y = h2+3*c;
- rect[2].x = w2-5*c; rect[2].y = h2+5*c;
- rect[3].x = w2-7*c; rect[3].y = h2+5*c;
+ rect[0].x = w2+8*c; rect[0].y = h2-5*c;
+ rect[1].x = w2+9*c; rect[1].y = h2-5*c;
+ rect[2].x = w2+9*c; rect[2].y = h2+3*c;
+ rect[3].x = w2+8*c; rect[3].y = h2+3*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+ rect[0].x = w2+11*c; rect[0].y = h2-5*c;
+ rect[1].x = w2+12*c; rect[1].y = h2-5*c;
+ rect[2].x = w2+12*c; rect[2].y = h2+3*c;
+ rect[3].x = w2+11*c; rect[3].y = h2+3*c;
XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
/*
- * End 'M'.
+ * End 'O'.
*/
+
XSetWindowBackgroundPixmap(nxagentDisplay, win, nxagentPixmapLogo);
#ifdef NXAGENT_LOGO_DEBUG
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Splash.h b/nx-X11/programs/Xserver/hw/nxagent/Splash.h
index f7ba6c2..39becaa 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Splash.h
+++ b/nx-X11/programs/Xserver/hw/nxagent/Splash.h
@@ -33,6 +33,7 @@ extern int nxagentLogoDepth;
extern int nxagentLogoWhite;
extern int nxagentLogoRed;
extern int nxagentLogoBlack;
+extern int nxagentLogoGray;
extern Window nxagentSplashWindow;
diff --git a/nx-X11/programs/Xserver/os/oscolor.c b/nx-X11/programs/Xserver/os/oscolor.c
index d18e7b6..e8692a9 100644
--- a/nx-X11/programs/Xserver/os/oscolor.c
+++ b/nx-X11/programs/Xserver/os/oscolor.c
@@ -53,7 +53,19 @@ SOFTWARE.
#include <sys/stat.h>
#include <unistd.h>
-static char* nxAltRgbPaths[] = {"/etc/nxagent/rgb", "/usr/share/nx/rgb", "/usr/local/share/nx/rgb", "/usr/NX/share/rgb", "/usr/share/X11/rgb", "/etc/X11/rgb"};
+/* FIXME: we need more intelligent code (like provided by the nxagentX2go
+ * var in hw/nxagent/Init.h) to detect our current runtime mode (running
+ * as x2goagent, running as nxagent)
+ */
+static char* nxAltRgbPaths[] = {"/etc/x2go/rgb", \
+ "/usr/share/x2go/rgb", \
+ "/usr/local/share/x2go/rgb", \
+ "/etc/nxagent/rgb", \
+ "/usr/share/nx/rgb", \
+ "/usr/local/share/nx/rgb", \
+ "/usr/NX/share/rgb", \
+ "/usr/share/X11/rgb", \
+ "/etc/X11/rgb"};
static char _NXRgbPath[1024];
#endif
--
Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
More information about the x2go-commits
mailing list