aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver/hw/nxagent
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2013-03-28 08:58:35 +0100
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2013-03-28 08:58:35 +0100
commitdb7feaf9883bb0dc419593588036405ef12ebca1 (patch)
tree1a911fe1a08aed78845e17b5350c9238452a12dd /nx-X11/programs/Xserver/hw/nxagent
parente77bf36d9afbc7e56522574b06217d57c11dd095 (diff)
downloadnx-libs-db7feaf9883bb0dc419593588036405ef12ebca1.tar.gz
nx-libs-db7feaf9883bb0dc419593588036405ef12ebca1.tar.bz2
nx-libs-db7feaf9883bb0dc419593588036405ef12ebca1.zip
Revert "release 3.5.0.19"
This reverts commit e77bf36d9afbc7e56522574b06217d57c11dd095.
Diffstat (limited to 'nx-X11/programs/Xserver/hw/nxagent')
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Args.c23
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Args.h2
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Clipboard.c29
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Display.c64
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Error.c2
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Error.h2
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Handlers.c2
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Icons.h2
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Image.c7
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Imakefile11
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Init.c28
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Init.h2
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Keyboard.c46
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Keystroke.c699
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Keystroke.h47
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c17
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Options.c1
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Options.h7
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Render.c16
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Screen.c36
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Splash.c162
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Splash.h1
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Window.c30
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c4
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/X/NXpicturestr.h1
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/X/NXxvdisp.c30
26 files changed, 345 insertions, 926 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Args.c b/nx-X11/programs/Xserver/hw/nxagent/Args.c
index fad0b62d8..ecf04e226 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Args.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Args.c
@@ -148,8 +148,6 @@ static int nxagentGetDialogName(void);
char nxagentVerbose = 0;
-char *nxagentKeystrokeFile = NULL;
-
int ddxProcessArgument(int argc, char *argv[], int i)
{
/*
@@ -674,12 +672,6 @@ int ddxProcessArgument(int argc, char *argv[], int i)
return 1;
}
- if (!strcmp(argv[i], "-norootlessexit")) {
- nxagentChangeOption(NoRootlessExit, True);
- return 1;
- }
-
-
if (!strcmp(argv[i], "-noonce"))
{
nxagentOnce = False;
@@ -1023,20 +1015,6 @@ int ddxProcessArgument(int argc, char *argv[], int i)
return 1;
}
- if (!strcmp(argv[i], "-keystrokefile"))
- {
- if (i + 1 < argc)
- {
- if (NULL != (nxagentKeystrokeFile = strdup(argv[i + 1])))
- {
- return 2;
- } else {
- FatalError("malloc failed");
- }
- }
- return 0;
- }
-
return 0;
}
@@ -1877,7 +1855,6 @@ void ddxUseMsg()
ErrorF("The NX system adds the following arguments:\n");
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");
#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/Args.h b/nx-X11/programs/Xserver/hw/nxagent/Args.h
index 85734be23..8f4d05d6c 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Args.h
+++ b/nx-X11/programs/Xserver/hw/nxagent/Args.h
@@ -83,6 +83,4 @@ extern int nxagentUserDefinedFontPath;
extern int nxagentRemoteMajor;
-extern char *nxagentKeystrokeFile;
-
#endif /* __Args_H__ */
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c b/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c
index d4fa4a979..2742e147f 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c
@@ -166,9 +166,7 @@ Bool nxagentValidServerTargets(Atom target)
if (target == XA_STRING) return True;
if (target == serverTEXT) return True;
- /* by dimbor */
- if (target == serverUTF8_STRING) return True;
-
+
return False;
}
@@ -404,12 +402,7 @@ FIXME: Do we need this?
lastServerProperty = X->xselectionrequest.property;
lastServerRequestor = X->xselectionrequest.requestor;
lastServerTarget = X->xselectionrequest.target;
-
- /* by dimbor */
- if (lastServerTarget != XA_STRING)
- lastServerTarget = serverUTF8_STRING;
-
- lastServerTime = X->xselectionrequest.time;
+ lastServerTime = X->xselectionrequest.time;
x.u.u.type = SelectionRequest;
x.u.selectionRequest.time = GetTimeInMillis();
@@ -431,12 +424,11 @@ FIXME: Do we need this?
x.u.selectionRequest.selection = CurrentSelections[i].selection;
- /* by dimbor (idea from zahvatov) */
- if (X->xselectionrequest.target != XA_STRING)
- x.u.selectionRequest.target = clientUTF8_STRING;
- else
- x.u.selectionRequest.target = XA_STRING;
-
+ /*
+ * x.u.selectionRequest.target = X->xselectionrequest.target;
+ */
+
+ x.u.selectionRequest.target = XA_STRING;
x.u.selectionRequest.property = clientCutProperty;
(void) TryClientEvents(lastSelectionOwner[i].client, &x, 1,
@@ -1226,11 +1218,10 @@ int nxagentConvertSelection(ClientPtr client, WindowPtr pWin, Atom selection,
Atom xa_STRING[4];
xEvent x;
- /* --- Order changed by dimbor (prevent sending COMPOUND_TEXT to client --- */
xa_STRING[0] = XA_STRING;
- xa_STRING[1] = clientUTF8_STRING;
- xa_STRING[2] = clientTEXT;
- xa_STRING[3] = clientCOMPOUND_TEXT;
+ xa_STRING[1] = clientTEXT;
+ xa_STRING[2] = clientCOMPOUND_TEXT;
+ xa_STRING[3] = clientUTF8_STRING;
ChangeWindowProperty(pWin,
property,
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Display.c b/nx-X11/programs/Xserver/hw/nxagent/Display.c
index b01d66cb0..9031c25c7 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Display.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Display.c
@@ -77,7 +77,6 @@ is" without express or implied warranty.
#include "NXlib.h"
#include NXAGENT_ICON_NAME
-#include X2GOAGENT_ICON_NAME
/*
* Set here the required log level.
@@ -1430,10 +1429,22 @@ FIXME: Use of nxagentParentWindow is strongly deprecated.
g = pV.green_mask;
b = pV.blue_mask;
- nxagentLogoBlack = 0x000000;
- nxagentLogoRed = 0xff0000;
- nxagentLogoWhite = 0xffffff;
- nxagentLogoGray = 0x222222;
+ 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;
+ }
#ifdef WATCH
@@ -1930,29 +1941,12 @@ Bool nxagentMakeIcon(Display *display, Pixmap *nxIcon, Pixmap *nxMask)
Bool success = False;
XlibPixmap IconPixmap;
XlibPixmap IconShape;
- char* agent_icon_name;
- char* agentIconData;
-
- /*
- * selecting x2go icon when running as X2Go agent
- */
- if(nxagentX2go)
- {
- agent_icon_name=X2GOAGENT_ICON_NAME;
- agentIconData=x2goagentIconData;
- }
- else
- {
- agent_icon_name=NXAGENT_ICON_NAME;
- agentIconData=nxagentIconData;
- }
-
- snprintf(default_path, PATH_MAX-1, "/usr/NX/share/images/%s", agent_icon_name);
+ snprintf(default_path, PATH_MAX-1, "/usr/NX/share/images/%s", NXAGENT_ICON_NAME);
if ((icon_fp = fopen(default_path, "r")) == NULL)
{
- icon_fp = nxagentLookForIconFile(agent_icon_name, "r", icon_path);
+ icon_fp = nxagentLookForIconFile(NXAGENT_ICON_NAME, "r", icon_path);
if (icon_fp != NULL)
{
@@ -1991,7 +1985,7 @@ Bool nxagentMakeIcon(Display *display, Pixmap *nxIcon, Pixmap *nxMask)
{
status = XpmCreatePixmapFromData(display,
DefaultRootWindow(display),
- agentIconData,
+ nxagentIconData,
&IconPixmap,
&IconShape,
NULL);
@@ -2684,10 +2678,22 @@ Bool nxagentReconnectDisplay(void *p0)
g = pV.green_mask;
b = pV.blue_mask;
- nxagentLogoBlack = 0x000000;
- nxagentLogoRed = 0xff0000;
- nxagentLogoWhite = 0xffffff;
- nxagentLogoGray = 0x222222;
+ 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;
+ }
useXpmIcon = nxagentMakeIcon(nxagentDisplay, &nxagentIconPixmap, &nxagentIconShape);
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Error.c b/nx-X11/programs/Xserver/hw/nxagent/Error.c
index 31ff4cf25..43bf85900 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Error.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Error.c
@@ -497,7 +497,7 @@ char *nxagentGetRootPath(void)
return rootPath;
}
-char *nxagentGetSessionPath(void)
+char *nxagentGetSessionPath()
{
char *rootPath;
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Error.h b/nx-X11/programs/Xserver/hw/nxagent/Error.h
index 51d6171da..e55fd71a5 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Error.h
+++ b/nx-X11/programs/Xserver/hw/nxagent/Error.h
@@ -34,6 +34,4 @@ void nxagentStartRedirectToClientsLog(void);
void nxagentEndRedirectToClientsLog(void);
-char *nxagentGetSessionPath(void);
-
#endif /* __Error_H__ */
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Handlers.c b/nx-X11/programs/Xserver/hw/nxagent/Handlers.c
index 1fc6bbf8b..332816fe0 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Handlers.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Handlers.c
@@ -219,7 +219,7 @@ void nxagentBlockHandler(pointer data, struct timeval **timeout, pointer mask)
if (nxagentOption(Rootless) &&
nxagentLastWindowDestroyed && nxagentRootlessDialogPid == 0 &&
- now > nxagentLastWindowDestroyedTime + 30 * 1000 && !nxagentOption(NoRootlessExit))
+ now > nxagentLastWindowDestroyedTime + 30 * 1000)
{
#ifdef WARNING
fprintf(stderr, "nxagentBlockHandler: No application running. Closing the session.\n");
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Icons.h b/nx-X11/programs/Xserver/hw/nxagent/Icons.h
index 98e879662..0601584d4 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Icons.h
+++ b/nx-X11/programs/Xserver/hw/nxagent/Icons.h
@@ -24,8 +24,6 @@
#define NXAGENT_ICON_NAME "nxagent.xpm"
-#define X2GOAGENT_ICON_NAME "x2go.xpm"
-
#define NXAGENT_PLACEHOLDER_NAME "nxmissing.xpm"
#endif /* __Icons_H__ */
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Image.c b/nx-X11/programs/Xserver/hw/nxagent/Image.c
index 1f0b735b0..e499b7a11 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Image.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Image.c
@@ -644,10 +644,6 @@ FIXME: Should use these.
pDrawable -> depth != 1 &&
nxagentOption(DeferLevel) >= 1)
{
- /* -- changed by dimbor (small "bed-sheets" never need be prevented - always put) --*/
- if (dstHeight > 16)
- {
- /* -------------------------------------------------------------------------------- */
#ifdef TEST
fprintf(stderr, "nxagentPutImage: WARNING! Prevented operation on region [%d,%d,%d,%d] "
"for drawable at [%p] with drawable pixmap.\n", pRegion -> extents.x1,
@@ -658,9 +654,6 @@ FIXME: Should use these.
nxagentMarkCorruptedRegion(pDrawable, pRegion);
goto nxagentPutImageEnd;
- /* --- changed by dimbor ---*/
- }
- /* ------------------------- */
}
if (pDrawable -> type == DRAWABLE_WINDOW &&
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Imakefile b/nx-X11/programs/Xserver/hw/nxagent/Imakefile
index d812c7f70..96579583b 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Imakefile
+++ b/nx-X11/programs/Xserver/hw/nxagent/Imakefile
@@ -142,8 +142,7 @@ INCLUDES = -I. -I../../../../../nxcomp -I../../../../../nxcompext -I../../../../
-I../../miext/damage -I../../miext/cw \
-I../../GL/glx -I../../GL/include -I../../../../lib/GL/include -I../../Xext \
-I$(EXTINCSRC) -I$(XINCLUDESRC) \
- $(VFBINCLUDES) $(NXFONTINCLUDES) $(LIBXRANDRINCLUDES) \
- `pkg-config --cflags-only-I libxml-2.0`
+ $(VFBINCLUDES) $(NXFONTINCLUDES) $(LIBXRANDRINCLUDES)
#ifdef SunArchitecture
INCLUDES = -I. -I../../../../../nxcomp -I../../../../../nxcompext -I../../../../../nxcompshad \
-I../../../../extras/Mesa/include \
@@ -153,8 +152,7 @@ INCLUDES = -I. -I../../../../../nxcomp -I../../../../../nxcompext -I../../../../
-I../../GL/glx -I../../GL/include -I../../../../lib/GL/include -I../../Xext \
-I../../miext/damage -I../../miext/cw \
-I$(EXTINCSRC) -I$(XINCLUDESRC) \
- $(VFBINCLUDES) $(NXFONTINCLUDES) $(LIBXRANDRINCLUDES) \
- `pkg-config --cflags-only-I libxml-2.0`
+ $(VFBINCLUDES) $(NXFONTINCLUDES) $(LIBXRANDRINCLUDES)
#else
#ifdef cygwinArchitecture
INCLUDES = -I. -I$(XBUILDINCDIR) -I$(FONTINCSRC) \
@@ -164,8 +162,7 @@ INCLUDES = -I. -I$(XBUILDINCDIR) -I$(FONTINCSRC) \
-I../../../../../nxcomp -I../../../../../nxcompext -I../../../../../nxcompshad \
-I../../../../extras/Mesa/include \
-I$(EXTINCSRC) -I$(XINCLUDESRC) \
- $(VFBINCLUDES) $(NXFONTINCLUDES) $(LIBXRANDRINCLUDES) \
- `pkg-config --cflags-only-I libxml-2.0`
+ $(VFBINCLUDES) $(NXFONTINCLUDES) $(LIBXRANDRINCLUDES)
#endif
#endif
@@ -209,7 +206,7 @@ DEFINES = -g $(OS_DEFINES) $(EXT_DEFINES) $(UPG_DEFINES) \
-UNX_DEBUG_INPUT \
-DRANDR_10_INTERFACE \
-DRANDR_12_INTERFACE \
- -DPANORAMIX \
+ -UPANORAMIX \
-UDEBUG_TREE
all:: $(OBJS)
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Init.c b/nx-X11/programs/Xserver/hw/nxagent/Init.c
index a4c341a2f..a50e8a5fc 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Init.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Init.c
@@ -177,29 +177,6 @@ int nxagentSaveUnder;
int nxagentDoFullGeneration = 1;
- /*
- * 1 if agent running as X2goAgent
- * 0 if NX Agent
- */
-int nxagentX2go;
-
-/*
- * Checking if agent is x2go agent
- */
-
-void checkX2goAgent()
-{
- extern const char *__progname;
- if( strcasecmp(__progname,"x2goagent") == 0)
- {
- fprintf(stderr, "\nrunning as X2Go Agent\n");
- nxagentX2go=1;
- }
- else
- nxagentX2go=0;
-}
-
-
/*
* Called at X server's initialization.
*/
@@ -216,11 +193,6 @@ void InitOutput(ScreenInfo *screenInfo, int argc, char *argv[])
#endif
/*
- * Check if we running as X2Go Agent
- */
- checkX2goAgent();
-
- /*
* Print our pid and version information.
*/
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Init.h b/nx-X11/programs/Xserver/hw/nxagent/Init.h
index b516c7b34..2dc0f5c02 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Init.h
+++ b/nx-X11/programs/Xserver/hw/nxagent/Init.h
@@ -37,8 +37,6 @@ extern int nxagentDoFullGeneration;
extern int nxagentBackingStore;
extern int nxagentSaveUnder;
-extern int nxagentX2go;
-
extern ServerGrabInfoRec nxagentGrabServerInfo;
#endif /* __Init_H__ */
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c
index dfafe1ebb..e3b58b6c7 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c
@@ -52,7 +52,6 @@ is" without express or implied warranty.
#include "Keyboard.h"
#include "Events.h"
#include "Options.h"
-#include "Error.h"
#include "NXlib.h"
@@ -137,7 +136,7 @@ extern Status XkbGetControls(
#define XKB_ALTERNATE_BASE_DIRECTORY "/usr/X11R6/lib/X11/xkb"
#endif
#ifndef XKB_CONFIG_FILE
-#define XKB_CONFIG_FILE "/etc/nxagent/nxagent.keyboard"
+#define XKB_CONFIG_FILE "X0-config.keyboard"
#endif
#ifndef XKB_DFLT_RULES_FILE
#define XKB_DFLT_RULES_FILE "xfree86"
@@ -986,7 +985,8 @@ XkbError:
XkbGetControls(nxagentDisplay, XkbAllControlsMask, xkb);
- nxagentXkbConfigFilePathSize = strlen(XKB_CONFIG_FILE);
+ nxagentXkbConfigFilePathSize = strlen(XkbBaseDirectory) +
+ strlen(XKB_CONFIG_FILE) + 1;
nxagentXkbConfigFilePath = malloc((nxagentXkbConfigFilePathSize + 1) * sizeof(char));
@@ -995,7 +995,9 @@ XkbError:
FatalError("nxagentKeyboardProc: malloc failed.");
}
- strcpy(nxagentXkbConfigFilePath, XKB_CONFIG_FILE);
+ strcpy(nxagentXkbConfigFilePath, XkbBaseDirectory);
+ strcat(nxagentXkbConfigFilePath, "/");
+ strcat(nxagentXkbConfigFilePath, XKB_CONFIG_FILE);
#ifdef TEST
fprintf(stderr, "nxagentKeyboardProc: nxagentXkbConfigFilePath [%s].\n",
@@ -1791,42 +1793,6 @@ void nxagentKeycodeConversionSetup(void)
}
#endif
- if (drulesLen != 0)
- {
- char *sessionpath = nxagentGetSessionPath();
- if (sessionpath != NULL){
- int keyboard_file_path_size = strlen(sessionpath) + strlen("/keyboard");
- char *keyboard_file_path = malloc((keyboard_file_path_size + 1) * sizeof(char));
- FILE *keyboard_file;
- if ( keyboard_file_path == NULL)
- {
- FatalError("nxagentKeyboardProc: malloc failed.");
- }
- strcpy(keyboard_file_path, sessionpath);
- strcat(keyboard_file_path, "/keyboard");
- if ((keyboard_file = fopen(keyboard_file_path, "w")) != NULL) {
- if ( drules != NULL )
- fprintf(keyboard_file, "rules=%s\n", drules);
- if ( dmodel != NULL )
- fprintf(keyboard_file, "model=%s\n", dmodel);
- if ( dlayout != NULL )
- fprintf(keyboard_file, "layout=%s\n", dlayout);
- if ( dvariant != NULL )
- fprintf(keyboard_file, "variant=%s\n", dvariant);
- if ( doptions != NULL )
- fprintf(keyboard_file, "options=%s\n", doptions);
- fclose(keyboard_file);
- }
- free(keyboard_file_path);
- fprintf(stderr, "keyboard file created\n");
- }
- fprintf(stderr, "SessionPath not defined\n");
- }
- else
- {
- fprintf(stderr, "Failed to create the keyboard file\n");
- }
-
if (nxagentOption(ClientOs) == ClientOsLinux &&
drules != NULL && dmodel != NULL &&
(strcmp(drules, "evdev") == 0 ||
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keystroke.c b/nx-X11/programs/Xserver/hw/nxagent/Keystroke.c
index 694781c7e..6c6e477ab 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Keystroke.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Keystroke.c
@@ -28,15 +28,8 @@
#include "Keystroke.h"
#include "Drawable.h"
-#include <unistd.h>
-
-#include <libxml/parser.h>
-#include <libxml/tree.h>
-
extern Bool nxagentWMIsRunning;
extern Bool nxagentIpaq;
-extern char *nxagentKeystrokeFile;
-Bool nxagentKeystrokeFileParsed = False;
#ifdef NX_DEBUG_INPUT
int nxagentDebugInputDevices = 0;
@@ -54,369 +47,10 @@ extern void nxagentDeactivateInputDevicesGrabs();
#undef DEBUG
#undef DUMP
-
-/* this table is used to parse actions given on the command line or in the
- * config file, therefore indices have to match the enum in Keystroke.h */
-char * nxagentSpecialKeystrokeNames[] = {
- "end_marker",
- "close_session",
- "switch_all_screens",
- "minimize",
- "left",
- "up",
- "right",
- "down",
- "resize",
- "defer",
- "ignore",
- "force_synchronization",
-
- "debug_tree",
- "regions_on_screen",
- "test_input",
- "deactivate_input_devices_grab",
-
- "fullscreen",
- "viewport_move_left",
- "viewport_move_up",
- "viewport_move_right",
- "viewport_move_down",
- NULL,
-};
-
-struct nxagentSpecialKeystrokeMap default_map[] = {
- /* stroke, modifierMask, modifierAltMeta, keysym */
- {KEYSTROKE_DEBUG_TREE, ControlMask, 1, XK_q},
- {KEYSTROKE_DEBUG_TREE, ControlMask, 1, XK_Q},
- {KEYSTROKE_CLOSE_SESSION, ControlMask, 1, XK_t},
- {KEYSTROKE_CLOSE_SESSION, ControlMask, 1, XK_T},
- {KEYSTROKE_SWITCH_ALL_SCREENS, ControlMask, 1, XK_f},
- {KEYSTROKE_SWITCH_ALL_SCREENS, ControlMask, 1, XK_F},
- {KEYSTROKE_MINIMIZE, ControlMask, 1, XK_m},
- {KEYSTROKE_MINIMIZE, ControlMask, 1, XK_M},
- {KEYSTROKE_LEFT, ControlMask, 1, XK_Left},
- {KEYSTROKE_LEFT, ControlMask, 1, XK_KP_Left},
- {KEYSTROKE_UP, ControlMask, 1, XK_Up},
- {KEYSTROKE_UP, ControlMask, 1, XK_KP_Up},
- {KEYSTROKE_RIGHT, ControlMask, 1, XK_Right},
- {KEYSTROKE_RIGHT, ControlMask, 1, XK_KP_Right},
- {KEYSTROKE_DOWN, ControlMask, 1, XK_Down},
- {KEYSTROKE_DOWN, ControlMask, 1, XK_KP_Down},
- {KEYSTROKE_RESIZE, ControlMask, 1, XK_r},
- {KEYSTROKE_RESIZE, ControlMask, 1, XK_R},
- {KEYSTROKE_DEFER, ControlMask, 1, XK_e},
- {KEYSTROKE_DEFER, ControlMask, 1, XK_E},
- {KEYSTROKE_IGNORE, ControlMask, 1, XK_BackSpace},
- {KEYSTROKE_IGNORE, 0, 0, XK_Terminate_Server},
- {KEYSTROKE_FORCE_SYNCHRONIZATION, ControlMask, 1, XK_j},
- {KEYSTROKE_FORCE_SYNCHRONIZATION, ControlMask, 1, XK_J},
- {KEYSTROKE_REGIONS_ON_SCREEN, ControlMask, 1, XK_a},
- {KEYSTROKE_REGIONS_ON_SCREEN, ControlMask, 1, XK_A},
- {KEYSTROKE_TEST_INPUT, ControlMask, 1, XK_x},
- {KEYSTROKE_TEST_INPUT, ControlMask, 1, XK_X},
- {KEYSTROKE_DEACTIVATE_INPUT_DEVICES_GRAB, ControlMask, 1, XK_y},
- {KEYSTROKE_DEACTIVATE_INPUT_DEVICES_GRAB, ControlMask, 1, XK_Y},
- {KEYSTROKE_FULLSCREEN, ControlMask | ShiftMask, 1, XK_f},
- {KEYSTROKE_FULLSCREEN, ControlMask | ShiftMask, 1, XK_F},
- {KEYSTROKE_VIEWPORT_MOVE_LEFT, ControlMask | ShiftMask, 1, XK_Left},
- {KEYSTROKE_VIEWPORT_MOVE_LEFT, ControlMask | ShiftMask, 1, XK_KP_Left},
- {KEYSTROKE_VIEWPORT_MOVE_UP, ControlMask | ShiftMask, 1, XK_Up},
- {KEYSTROKE_VIEWPORT_MOVE_UP, ControlMask | ShiftMask, 1, XK_KP_Up},
- {KEYSTROKE_VIEWPORT_MOVE_RIGHT, ControlMask | ShiftMask, 1, XK_Right},
- {KEYSTROKE_VIEWPORT_MOVE_RIGHT, ControlMask | ShiftMask, 1, XK_KP_Right},
- {KEYSTROKE_VIEWPORT_MOVE_DOWN, ControlMask | ShiftMask, 1, XK_Down},
- {KEYSTROKE_VIEWPORT_MOVE_DOWN, ControlMask | ShiftMask, 1, XK_KP_Down},
- {KEYSTROKE_END_MARKER, 0, 0, 0},
-};
-struct nxagentSpecialKeystrokeMap *map = default_map;
-
-static int modifier_matches(unsigned int mask, int compare_alt_meta, unsigned int state)
-{
- /* nxagentAltMetaMask needs special handling
- * it seems to me its an and-ed mask of all possible meta and alt keys
- * somehow...
- *
- * otherwise this function would be just a simple bitop
- */
- int ret = 1;
-
- if (compare_alt_meta) {
- if (! (state & nxagentAltMetaMask)) {
- ret = 0;
- }
-
- mask &= ~nxagentAltMetaMask;
- }
-
- /* all modifiers except meta/alt have to match exactly, extra bits are evil */
- if ((mask & state) != mask) {
- ret = 0;
- }
-
- return ret;
-}
-
-static int read_binding_from_xmlnode(xmlNode *node, struct nxagentSpecialKeystrokeMap *ret)
-{
- int successful = 0;
- struct nxagentSpecialKeystrokeMap new = {0, 0, 0, 0};
- xmlAttr *attr;
-
- for (attr = node->properties; attr; attr = attr->next)
- {
- /* ignore attributes without data (which should never happen anyways) */
- if (attr->children->content == NULL)
- {
- char *aname = (attr->name)?(attr->name):"unknown";
- fprintf(stderr, "attribute %s with NULL value", aname);
- continue;
- }
- if (strcmp((char *)attr->name, "action") == 0)
- {
- int i;
- for (i = 0; nxagentSpecialKeystrokeNames[i] != NULL; i++)
- {
- if (strcmp(nxagentSpecialKeystrokeNames[i],(char *)attr->children->content) == 0)
- {
- /* this relies on the values of enum nxagentSpecialKeystroke and the
- * indices of nxagentSpecialKeystrokeNames being in sync */
- new.stroke = i;
- break;
- }
- }
- continue;
- }
- else if (strcmp((char *)attr->name, "key") == 0)
- {
- new.keysym = XStringToKeysym((char *)attr->children->content);
- /* NoSymbol is usually 0, but could there be weird implementations? */
- if (new.keysym == NoSymbol)
- {
- new.keysym = 0;
- }
- continue;
- }
-
- /* ignore attributes with value="0" or "false", everything else is interpreted as true */
- if (strcmp((char *)attr->children->content, "0") == 0 || strcmp((char *)attr->children->content, "false") == 0)
- continue;
-
- if (strcmp((char *)attr->name, "Mod1") == 0)
- {
- new.modifierMask |= Mod1Mask;
- }
- else if (strcmp((char *)attr->name, "Mod2") == 0)
- {
- new.modifierMask |= Mod2Mask;
- }
- else if (strcmp((char *)attr->name, "Mod3") == 0)
- {
- new.modifierMask |= Mod3Mask;
- }
- else if (strcmp((char *)attr->name, "Mod4") == 0)
- {
- new.modifierMask |= Mod4Mask;
- }
- else if (strcmp((char *)attr->name, "Control") == 0)
- {
- new.modifierMask |= ControlMask;
- }
- else if (strcmp((char *)attr->name, "Shift") == 0)
- {
- new.modifierMask |= ShiftMask;
- }
- else if (strcmp((char *)attr->name, "Lock") == 0)
- {
- new.modifierMask |= LockMask;
- }
- else if (strcmp((char *)attr->name, "AltMeta") == 0)
- {
- new.modifierAltMeta = 1;
- }
- }
-
- if (new.stroke != 0 && new.keysym != 0)
- {
- /* keysym and stroke are required, everything else is optional */
- successful = 1;
- memcpy(ret, &new, sizeof(struct nxagentSpecialKeystrokeMap));
- }
- return successful;
-}
-
-/*
- * searches a keystroke xml file
- *
- * search order:
- * - '-keystrokefile' commandline parameter
- * - $NXAGENT_KEYSTROKEFILE environment variable
- * - $HOME/.nx/config/keystroke.cfg
- * - /etc/nx/keystroke.cfg
- * - hardcoded traditional NX default settings
- */
-static void parse_keystroke_file(void)
-{
- char *filename = NULL;
-
- char *homefile = "/.nx/config/keystroke.cfg";
- char *etcfile = "/etc/nx/keystroke.cfg";
-
- if (nxagentKeystrokeFile != NULL && access(nxagentKeystrokeFile, R_OK) == 0)
- {
- filename = strdup(nxagentKeystrokeFile);
- if (filename == NULL)
- {
- fprintf(stderr, "malloc failed");
- exit(EXIT_FAILURE);
- }
- }
- else if ((filename = getenv("NXAGENT_KEYSTROKEFILE")) != NULL && access(filename, R_OK) == 0)
- {
- filename = strdup(filename);
- if (filename == NULL)
- {
- fprintf(stderr, "malloc failed");
- exit(EXIT_FAILURE);
- }
- }
- else
- {
- char *homedir = getenv("HOME");
- filename = NULL;
- if (homedir != NULL)
- {
- homedir = strdup(homedir);
- if (homedir == NULL)
- {
- fprintf(stderr, "malloc failed");
-exit(EXIT_FAILURE);
- }
- filename = calloc(1, strlen(homefile) + strlen(homedir) + 1);
- if (filename == NULL)
- {
- fprintf(stderr, "malloc failed");
- exit(EXIT_FAILURE);
- }
- strcpy(filename, homedir);
- strcpy(filename + strlen(homedir), homefile);
- if (homedir)
- {
- free(homedir);
- }
- }
-
- if (access(filename, R_OK) == 0)
- {
- /* empty */
- }
- else if (access(etcfile, R_OK == 0))
- {
- if (filename)
- free(filename);
- filename = strdup(etcfile);
- if (filename == NULL)
- {
- fprintf(stderr, "malloc failed");
- exit(EXIT_FAILURE);
- }
- }
- else
- {
- if (filename)
-free(filename);
- filename = NULL;
- }
- }
-
- /* now we know which file to read, if any */
- if (filename)
- {
- xmlDoc *doc = NULL;
- xmlNode *root = NULL;
- LIBXML_TEST_VERSION
- doc = xmlReadFile(filename, NULL, 0);
- if (doc != NULL)
- {
- xmlNode *cur = NULL;
- root = xmlDocGetRootElement(doc);
-
- for (cur = root; cur; cur = cur->next)
- {
- if (cur->type == XML_ELEMENT_NODE && strcmp((char *)cur->name, "keystrokes") == 0)
-{
- xmlNode *bindings = NULL;
- int num = 0;
- int idx = 0;
-
- for (bindings = cur->children; bindings; bindings = bindings->next)
- {
- if (bindings->type == XML_ELEMENT_NODE && strcmp((char *)bindings->name, "keystroke") == 0)
- {
- num++;
- }
- }
- map = calloc((num + 1), sizeof(struct nxagentSpecialKeystrokeMap));
- if (map == NULL)
- {
- fprintf(stderr, "malloc failed");
- exit(EXIT_FAILURE);
- }
-
- for (bindings = cur->children; bindings; bindings = bindings->next)
- {
- if (bindings->type == XML_ELEMENT_NODE && strcmp((char *)bindings->name, "keystroke") == 0)
- {
- int res = 0;
- res = read_binding_from_xmlnode(bindings, &(map[idx]));
- if (res)
- idx++;
- }
- }
-
- map[idx].stroke = KEYSTROKE_END_MARKER;
- }
- }
-
- xmlFreeDoc(doc);
- xmlCleanupParser();
- }
- else
- {
- #ifdef DEBUG
- fprintf("XML parsing for %s failed\n", filename);
- #endif
- }
- free(filename);
- }
-}
-
-static enum nxagentSpecialKeystroke find_keystroke(XKeyEvent *X)
-{
- KeySym keysym = XKeycodeToKeysym(nxagentDisplay, X->keycode, 0);
- struct nxagentSpecialKeystrokeMap *cur = map;
-
- if (! nxagentKeystrokeFileParsed)
- {
- parse_keystroke_file();
- nxagentKeystrokeFileParsed = True;
- }
-
- enum nxagentSpecialKeystroke ret = KEYSTROKE_NOTHING;
-
- while ((cur++)->stroke != KEYSTROKE_END_MARKER) {
- if (cur->keysym == keysym && modifier_matches(cur->modifierMask, cur->modifierAltMeta, X->state)) {
- return cur->stroke;
- }
- }
-
- return ret;
-}
-
int nxagentCheckSpecialKeystroke(XKeyEvent *X, enum HandleEventResult *result)
{
KeySym sym;
int index = 0;
- enum nxagentSpecialKeystroke stroke = find_keystroke(X);
*result = doNothing;
@@ -453,128 +87,257 @@ int nxagentCheckSpecialKeystroke(XKeyEvent *X, enum HandleEventResult *result)
return 1;
}
- switch (stroke) {
- case KEYSTROKE_DEBUG_TREE:
+ if ((X -> state & nxagentAltMetaMask) &&
+ ((X -> state & (ControlMask | ShiftMask)) == ControlMask))
+ {
+ switch (sym)
+ {
#ifdef DEBUG_TREE
- *result = doDebugTree;
- #endif
- break;
- case KEYSTROKE_CLOSE_SESSION:
- *result = doCloseSession;
- break;
- case KEYSTROKE_SWITCH_ALL_SCREENS:
- if (nxagentOption(Rootless) == False) {
- *result = doSwitchAllScreens;
+
+ case XK_q:
+ case XK_Q:
+ {
+ *result = doDebugTree;
+
+ break;
+ }
+
+ #endif /* DEBUG_TREE */
+
+ case XK_t:
+ case XK_T:
+ {
+ *result = doCloseSession;
+
+ break;
+ }
+ case XK_f:
+ case XK_F:
+ {
+ if (nxagentOption(Rootless) == False)
+ {
+ *result = doSwitchAllScreens;
+ }
+
+ break;
+ }
+ case XK_m:
+ case XK_M:
+ {
+ if (nxagentOption(Rootless) == False)
+ {
+ *result = doMinimize;
+ }
+
+ break;
+ }
+ case XK_Left:
+ case XK_KP_Left:
+ {
+ if (nxagentOption(Rootless) == False &&
+ nxagentOption(DesktopResize) == False)
+ {
+ *result = doViewportLeft;
+ }
+
+ break;
}
- break;
- case KEYSTROKE_MINIMIZE:
- if (nxagentOption(Rootless) == False) {
- *result = doMinimize;
+ case XK_Up:
+ case XK_KP_Up:
+ {
+ if (nxagentOption(Rootless) == False &&
+ nxagentOption(DesktopResize) == False)
+ {
+ *result = doViewportUp;
+ }
+
+ break;
+ }
+ case XK_Right:
+ case XK_KP_Right:
+ {
+ if (nxagentOption(Rootless) == False &&
+ nxagentOption(DesktopResize) == False)
+ {
+ *result = doViewportRight;
+ }
+
+ break;
}
- break;
- case KEYSTROKE_LEFT:
- if (nxagentOption(Rootless) == False &&
- nxagentOption(DesktopResize) == False) {
- *result = doViewportLeft;
+ case XK_Down:
+ case XK_KP_Down:
+ {
+ if (nxagentOption(Rootless) == 0 &&
+ nxagentOption(DesktopResize) == 0)
+ {
+ *result = doViewportDown;
+ }
+
+ break;
}
- break;
- case KEYSTROKE_UP:
- if (nxagentOption(Rootless) == False &&
- nxagentOption(DesktopResize) == False) {
- *result = doViewportUp;
+ case XK_R:
+ case XK_r:
+ {
+ if (nxagentOption(Rootless) == 0)
+ {
+ *result = doSwitchResizeMode;
+ }
+
+ break;
}
- break;
- case KEYSTROKE_RIGHT:
- if (nxagentOption(Rootless) == False &&
- nxagentOption(DesktopResize) == False) {
- *result = doViewportRight;
+ case XK_E:
+ case XK_e:
+ {
+ *result = doSwitchDeferMode;
+
+ break;
}
- break;
- case KEYSTROKE_DOWN:
- if (nxagentOption(Rootless) == False &&
- nxagentOption(DesktopResize) == False) {
- *result = doViewportDown;
+ case XK_BackSpace:
+ case XK_Terminate_Server:
+ {
+ /*
+ * Discard Ctrl-Alt-BackSpace key.
+ */
+
+ return 1;
+
+ break;
}
- break;
- case KEYSTROKE_RESIZE:
- if (nxagentOption(Rootless) == False) {
- *result = doSwitchResizeMode;
+
+ case XK_J:
+ case XK_j:
+ {
+ nxagentForceSynchronization = 1;
+
+ return 1;
}
- break;
- case KEYSTROKE_DEFER:
- *result = doSwitchDeferMode;
- break;
- case KEYSTROKE_IGNORE:
- /* this is used e.g. to ignore C-A-Backspace aka XK_Terminate_Server */
- return 1;
- break;
- case KEYSTROKE_FORCE_SYNCHRONIZATION:
- nxagentForceSynchronization = 1;
- break;
- case KEYSTROKE_REGIONS_ON_SCREEN:
+
#ifdef DUMP
- nxagentRegionsOnScreen();
+
+ case XK_A:
+ case XK_a:
+ {
+ /*
+ * Used to test the lazy encoding.
+ */
+
+ nxagentRegionsOnScreen();
+
+ return 1;
+ }
+
#endif
- break;
- case KEYSTROKE_TEST_INPUT:
- /*
- * Used to test the input devices state.
- */
+
#ifdef NX_DEBUG_INPUT
- if (X -> type == KeyPress) {
- if (nxagentDebugInputDevices == 0) {
- fprintf(stderr, "Info: Turning input devices debug ON.\n");
- nxagentDebugInputDevices = 1;
- } else {
- fprintf(stderr, "Info: Turning input devices debug OFF.\n");
- nxagentDebugInputDevices = 0;
- nxagentLastInputDevicesDumpTime = 0;
+
+ case XK_X:
+ case XK_x:
+ {
+ /*
+ * Used to test the input devices state.
+ */
+
+ if (X -> type == KeyPress)
+ {
+ if (nxagentDebugInputDevices == 0)
+ {
+ fprintf(stderr, "Info: Turning input devices debug ON.\n");
+
+ nxagentDebugInputDevices = 1;
+ }
+ else
+ {
+ fprintf(stderr, "Info: Turning input devices debug OFF.\n");
+
+ nxagentDebugInputDevices = 0;
+
+ nxagentLastInputDevicesDumpTime = 0;
+ }
}
+
+ return 1;
}
- return 1;
- #endif
- break;
- case KEYSTROKE_DEACTIVATE_INPUT_DEVICES_GRAB:
- #ifdef NX_DEBUG_INPUT
- if (X->type == KeyPress) {
- nxagentDeactivateInputDevicesGrab();
+
+ case XK_Y:
+ case XK_y:
+ {
+ /*
+ * Used to deactivate input devices grab.
+ */
+
+ if (X -> type == KeyPress)
+ {
+ nxagentDeactivateInputDevicesGrabs();
+ }
+
+ return 1;
}
- return 1;
+
#endif
- break;
- case KEYSTROKE_FULLSCREEN:
- if (nxagentOption(Rootless) == 0) {
- *result = doSwitchFullscreen;
+ }
+ }
+ else if ((X -> state & nxagentAltMetaMask) &&
+ ((X -> state & (ControlMask | ShiftMask)) == (ControlMask |
+ ShiftMask)))
+ {
+ switch (sym)
+ {
+ case XK_f:
+ case XK_F:
+ {
+ if (nxagentOption(Rootless) == 0)
+ {
+ *result = doSwitchFullscreen;
+ }
+
+ break;
}
- break;
- case KEYSTROKE_VIEWPORT_MOVE_LEFT:
- if (nxagentOption(Rootless) == 0 &&
- nxagentOption(DesktopResize) == 0) {
- *result = doViewportMoveLeft;
+ case XK_Left:
+ case XK_KP_Left:
+ {
+ if (nxagentOption(Rootless) == 0 &&
+ nxagentOption(DesktopResize) == 0)
+ {
+ *result = doViewportMoveLeft;
+ }
+
+ break;
}
- break;
- case KEYSTROKE_VIEWPORT_MOVE_UP:
- if (nxagentOption(Rootless) == 0 &&
- nxagentOption(DesktopResize) == 0) {
- *result = doViewportMoveUp;
+ case XK_Up:
+ case XK_KP_Up:
+ {
+ if (nxagentOption(Rootless) == 0 &&
+ nxagentOption(DesktopResize) == 0)
+ {
+ *result = doViewportMoveUp;
+ }
+
+ break;
}
- break;
- case KEYSTROKE_VIEWPORT_MOVE_RIGHT:
- if (nxagentOption(Rootless) == 0 &&
- nxagentOption(DesktopResize) == 0) {
- *result = doViewportMoveRight;
+ case XK_Right:
+ case XK_KP_Right:
+ {
+ if (nxagentOption(Rootless) == 0 &&
+ nxagentOption(DesktopResize) == 0)
+ {
+ *result = doViewportMoveRight;
+ }
+
+ break;
}
- break;
- case KEYSTROKE_VIEWPORT_MOVE_DOWN:
- if (nxagentOption(Rootless) == 0 &&
- nxagentOption(DesktopResize) == 0) {
- *result = doViewportMoveDown;
+ case XK_Down:
+ case XK_KP_Down:
+ {
+ if (nxagentOption(Rootless) == 0 &&
+ nxagentOption(DesktopResize) == 0)
+ {
+ *result = doViewportMoveDown;
+ }
+
+ break;
}
- break;
- case KEYSTROKE_NOTHING: /* do nothing. difference to KEYSTROKE_IGNORE is the return value */
- case KEYSTROKE_END_MARKER: /* just to make gcc STFU */
- case KEYSTROKE_MAX:
- break;
+ }
}
+
return (*result == doNothing) ? 0 : 1;
}
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keystroke.h b/nx-X11/programs/Xserver/hw/nxagent/Keystroke.h
index d9575c875..ef71a8851 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Keystroke.h
+++ b/nx-X11/programs/Xserver/hw/nxagent/Keystroke.h
@@ -24,51 +24,4 @@ extern int nxagentCheckSpecialKeystroke(XKeyEvent*, enum HandleEventResult*);
unsigned int nxagentAltMetaMask;
-/* keep this sorted, do not rely on any numerical value in this enum, and be aware
- * that KEYSTROKE_MAX may be used in a malloc */
-
-/* also be aware that if changing any numerical values, you also need to change values
- * Keystroke.c nxagentSpecialKeystrokeNames */
-enum nxagentSpecialKeystroke {
- /* 0 is used as end marker */
- KEYSTROKE_END_MARKER = 0,
- KEYSTROKE_CLOSE_SESSION = 1,
- KEYSTROKE_SWITCH_ALL_SCREENS = 2,
- KEYSTROKE_MINIMIZE = 3,
- KEYSTROKE_LEFT = 4,
- KEYSTROKE_UP = 5,
- KEYSTROKE_RIGHT = 6,
- KEYSTROKE_DOWN = 7,
- KEYSTROKE_RESIZE = 8,
- KEYSTROKE_DEFER = 9,
- KEYSTROKE_IGNORE = 10,
- KEYSTROKE_FORCE_SYNCHRONIZATION = 11,
-
- /* stuff used for debugging, probably not useful for most people */
- KEYSTROKE_DEBUG_TREE = 12,
- KEYSTROKE_REGIONS_ON_SCREEN = 13,
- KEYSTROKE_TEST_INPUT = 14,
- KEYSTROKE_DEACTIVATE_INPUT_DEVICES_GRAB = 15,
-
- KEYSTROKE_FULLSCREEN = 16,
- KEYSTROKE_VIEWPORT_MOVE_LEFT = 17,
- KEYSTROKE_VIEWPORT_MOVE_UP = 18,
- KEYSTROKE_VIEWPORT_MOVE_RIGHT = 19,
- KEYSTROKE_VIEWPORT_MOVE_DOWN = 20,
-
- KEYSTROKE_NOTHING = 21,
-
- /* insert more here, increment KEYSTROKE_MAX accordingly.
- * then update string translation below */
-
- KEYSTROKE_MAX=22,
-};
-
-struct nxagentSpecialKeystrokeMap {
- enum nxagentSpecialKeystroke stroke;
- unsigned int modifierMask; /* everything except alt/meta */
- int modifierAltMeta; /* modifier combination should include alt/meta */
- KeySym keysym;
-};
-
#endif /* __Keystroke_H__ */
diff --git a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c
index 77e2bf473..4f59b8098 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c
@@ -1973,23 +1973,6 @@ ProcCreatePixmap(client)
client->errorValue = 0;
return BadValue;
}
- if (stuff->width > 32767 || stuff->height > 32767)
- {
- /* It is allowed to try and allocate a pixmap which is larger than
- * 32767 in either dimension. However, all of the framebuffer code
- * is buggy and does not reliably draw to such big pixmaps, basically
- * because the Region data structure operates with signed shorts
- * for the rectangles in it.
- *
- * Furthermore, several places in the X server computes the
- * size in bytes of the pixmap and tries to store it in an
- * integer. This integer can overflow and cause the allocated size
- * to be much smaller.
- *
- * So, such big pixmaps are rejected here with a BadAlloc
- */
- return BadAlloc;
- }
if (stuff->depth != 1)
{
pDepth = pDraw->pScreen->allowedDepths;
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Options.c b/nx-X11/programs/Xserver/hw/nxagent/Options.c
index 7eac3d8a2..ca5be0b5f 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Options.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Options.c
@@ -56,7 +56,6 @@ void nxagentInitOptions()
nxagentOptions.Persistent = 1;
nxagentOptions.Rootless = UNDEFINED;
nxagentOptions.Fullscreen = UNDEFINED;
- nxagentOptions.NoRootlessExit = False;
nxagentOptions.X = 0;
nxagentOptions.Y = 0;
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Options.h b/nx-X11/programs/Xserver/hw/nxagent/Options.h
index 0e4869926..40cb1790e 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Options.h
+++ b/nx-X11/programs/Xserver/hw/nxagent/Options.h
@@ -381,13 +381,6 @@ typedef struct _AgentOptions
int ImageRateLimit;
- /*
- * True if agent should not exit if there are no
- * clients in rootless mode
- */
-
- int NoRootlessExit;
-
} AgentOptionsRec;
typedef AgentOptionsRec *AgentOptionsPtr;
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Render.c b/nx-X11/programs/Xserver/hw/nxagent/Render.c
index 41a1ec02e..29bffaa35 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Render.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Render.c
@@ -2689,17 +2689,11 @@ void nxagentReconnectPicture(pointer p0, XID x1, void *p2)
#endif
}
- if (!pForm && pPicture->pSourcePict)
- {
- /*possible we need to add support for other picture types, for example gradients...*/
- switch(pPicture->pSourcePict->type)
- {
- case SourcePictTypeSolidFill:
- nxagentPicturePriv(pPicture) -> picture = XRenderCreateSolidFill(nxagentDisplay,
- (const XRenderColor*) &pPicture->pSourcePict->solidFill.fullColor);
- break;
- }
- return;
+ if (!pForm)
+ {
+ *pBool = False;
+
+ return;
}
#ifdef TEST
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Screen.c b/nx-X11/programs/Xserver/hw/nxagent/Screen.c
index 104d431e0..9957a7dfd 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c
@@ -1759,42 +1759,6 @@ N/A
nxagentDefaultWindows[pScreen->myNum]);
#endif
- /*
- * Setting WM_CLASS to "X2GoAgent" when running in X2Go Agent mode
- * we need it to properly display all window parameters by some WMs
- * (for example on Maemo)
- */
- if(nxagentX2go)
- {
- #ifdef TEST
- fprintf(stderr, "nxagentOpenScreen: Setting WM_CLASS and WM_NAME for window withid [%ld].\n",
- nxagentDefaultWindows[pScreen->myNum]);
- #endif
- XClassHint hint;
- hint.res_name=malloc(strlen("X2GoAgent")+1);
- hint.res_class=malloc(strlen("X2GoAgent")+1);
- strcpy(hint.res_name,"X2GoAgent");
- strcpy(hint.res_class,"X2GoAgent");
- XSetClassHint(nxagentDisplay,nxagentDefaultWindows[pScreen->myNum],&hint);
- free(hint.res_name);
- free(hint.res_class);
- } else {
- #ifdef TEST
- fprintf(stderr, "nxagentOpenScreen: Setting WM_CLASS and WM_NAME for window withid [%ld].\n",
- nxagentDefaultWindows[pScreen->myNum]);
- #endif
-
- XClassHint hint;
- hint.res_name=malloc(strlen("NXAgent")+1);
- hint.res_class=malloc(strlen("NXAgent")+1);
- strcpy(hint.res_name,"NXAgent");
- strcpy(hint.res_class,"NXAgent");
- XSetClassHint(nxagentDisplay,nxagentDefaultWindows[pScreen->myNum],&hint);
- free(hint.res_name);
- free(hint.res_class);
- }
-
-
if (nxagentOption(Fullscreen))
{
nxagentFullscreenWindow = nxagentDefaultWindows[pScreen->myNum];
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Splash.c b/nx-X11/programs/Xserver/hw/nxagent/Splash.c
index abb0872d1..235c48c23 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Splash.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Splash.c
@@ -35,7 +35,6 @@
#include "Windows.h"
#include "Atoms.h"
#include "Trap.h"
-#include "Init.h"
/*
* Set here the required log level.
@@ -54,7 +53,6 @@ int nxagentLogoDepth;
int nxagentLogoWhite;
int nxagentLogoRed;
int nxagentLogoBlack;
-int nxagentLogoGray;
void nxagentPaintLogo(Window win, GC gc, int scale, int width, int height);
@@ -168,15 +166,6 @@ 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
@@ -229,146 +218,75 @@ void nxagentPaintLogo(Window win, GC gc, int scale, int width, int height)
XSetForeground(nxagentDisplay, gc, nxagentLogoRed);
XSetBackground(nxagentDisplay, gc, nxagentLogoWhite);
- /*
- * 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);
-
- 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);
-
- /*
- * End 'X'.
- */
-
- /*
- * 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-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;
- 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);
+ #ifdef NXAGENT_LOGO_DEBUG
+ fprintf(stderr, "filled red rect\n");
+ #endif
- 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-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;
+ XSetForeground(nxagentDisplay, gc, nxagentLogoWhite);
+ XSetBackground(nxagentDisplay, gc, nxagentLogoRed);
- 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);
- /*
- * End '2'.
- */
/*
- * Start 'G'.
+ * Begin 'M'.
*/
- 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);
+ 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;
- 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);
+ XSetForeground(nxagentDisplay, gc, nxagentLogoRed);
+ XSetBackground(nxagentDisplay, gc, nxagentLogoWhite);
- 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);
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, m, 12, Nonconvex, 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 'G'.
+ * End 'M'.
*/
/*
- * Start 'O'.
+ * Begin '!'.
*/
- 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-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+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+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-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+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 'O'.
+ * End 'M'.
*/
-
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 39becaa3d..f7ba6c2e2 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Splash.h
+++ b/nx-X11/programs/Xserver/hw/nxagent/Splash.h
@@ -33,7 +33,6 @@ 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/hw/nxagent/Window.c b/nx-X11/programs/Xserver/hw/nxagent/Window.c
index 0a8e8c29b..35a35984a 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Window.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Window.c
@@ -176,14 +176,6 @@ static void nxagentReconfigureWindow(pointer, XID, pointer);
static int nxagentForceExposure(WindowPtr pWin, pointer ptr);
-/* by dimbor */
-typedef struct
-{
- CARD32 state;
- Window icon;
-}
-nxagentWMStateRec;
-
/*
* This is currently unused.
*/
@@ -1866,17 +1858,6 @@ Bool nxagentRealizeWindow(WindowPtr pWin)
nxagentAddConfiguredWindow(pWin, CWStackingOrder);
nxagentAddConfiguredWindow(pWin, CW_Shape);
- /* add by dimbor */
- if (nxagentOption(Rootless) && nxagentWindowTopLevel(pWin))
- {
- Atom prop = MakeAtom("WM_STATE", strlen("WM_STATE"), True);
- nxagentWMStateRec wmState;
- wmState.state = 1; /* NormalState */
- wmState.icon = None;
- if (ChangeWindowProperty(pWin, prop, prop, 32, 0, 2, &wmState, 1) != Success)
- fprintf(stderr, "nxagentRealizeWindow: Additing WM_STATE fail.\n");
- }
-
#ifdef SHAPE
/*
@@ -1923,17 +1904,6 @@ Bool nxagentUnrealizeWindow(pWin)
return True;
}
- /* add by dimbor */
- if (nxagentOption(Rootless) && nxagentWindowTopLevel(pWin))
- {
- Atom prop = MakeAtom("WM_STATE", strlen("WM_STATE"), True);
- nxagentWMStateRec wmState;
- wmState.state = 3; /* WithdrawnState */
- wmState.icon = None;
- if (ChangeWindowProperty(pWin, prop, prop, 32, 0, 2, &wmState, 1) != Success)
- fprintf(stderr, "nxagentUnRealizeWindow: Changing WM_STATE failed.\n");
- }
-
XUnmapWindow(nxagentDisplay, nxagentWindow(pWin));
return True;
diff --git a/nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c b/nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c
index 4b342ebcf..d9054b4b6 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c
@@ -1137,10 +1137,6 @@ CreateSolidPicture (Picture pid, xRenderColor *color, int *error)
}
pPicture->pSourcePict->type = SourcePictTypeSolidFill;
pPicture->pSourcePict->solidFill.color = xRenderColorToCard32(*color);
- pPicture->pSourcePict->solidFill.fullColor.alpha=color->alpha;
- pPicture->pSourcePict->solidFill.fullColor.red=color->red;
- pPicture->pSourcePict->solidFill.fullColor.green=color->green;
- pPicture->pSourcePict->solidFill.fullColor.blue=color->blue;
return pPicture;
}
diff --git a/nx-X11/programs/Xserver/hw/nxagent/X/NXpicturestr.h b/nx-X11/programs/Xserver/hw/nxagent/X/NXpicturestr.h
index b2679257c..0d1a8e1d8 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/X/NXpicturestr.h
+++ b/nx-X11/programs/Xserver/hw/nxagent/X/NXpicturestr.h
@@ -95,7 +95,6 @@ typedef struct _PictTransform {
typedef struct _PictSolidFill {
unsigned int type;
CARD32 color;
- xRenderColor fullColor;
} PictSolidFill, *PictSolidFillPtr;
typedef struct _PictGradientStop {
diff --git a/nx-X11/programs/Xserver/hw/nxagent/X/NXxvdisp.c b/nx-X11/programs/Xserver/hw/nxagent/X/NXxvdisp.c
index cbb3f63e8..f6dad312a 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/X/NXxvdisp.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/X/NXxvdisp.c
@@ -275,19 +275,17 @@ ProcXvDispatch(ClientPtr client)
case xv_PutVideo:
#ifdef PANORAMIX
if(!noPanoramiXExtension)
- result = (XineramaXvPutVideo(client));
+ result = (XineramaXvPutVideo(client)); break;
else
#endif
- result = (ProcXvPutVideo(client));
- break;
+ result = (ProcXvPutVideo(client)); break;
case xv_PutStill:
#ifdef PANORAMIX
if(!noPanoramiXExtension)
- result = (XineramaXvPutStill(client));
+ result = (XineramaXvPutStill(client)); break
else
#endif
- result = (ProcXvPutStill(client));
- break;
+ result = (ProcXvPutStill(client)); break;
case xv_GetVideo: result = (ProcXvGetVideo(client)); break;
case xv_GetStill: result = (ProcXvGetStill(client)); break;
case xv_GrabPort: result = (ProcXvGrabPort(client)); break;
@@ -297,39 +295,35 @@ ProcXvDispatch(ClientPtr client)
case xv_StopVideo:
#ifdef PANORAMIX
if(!noPanoramiXExtension)
- result = (XineramaXvStopVideo(client));
+ result = (XineramaXvStopVideo(client)); break;
else
#endif
- result = (ProcXvStopVideo(client));
- break;
+ result = (ProcXvStopVideo(client)); break;
case xv_SetPortAttribute:
#ifdef PANORAMIX
if(!noPanoramiXExtension)
- result = (XineramaXvSetPortAttribute(client));
+ result = (XineramaXvSetPortAttribute(client)); break;
else
#endif
- result = (ProcXvSetPortAttribute(client));
- break;
+ result = (ProcXvSetPortAttribute(client)); break;
case xv_GetPortAttribute: result = (ProcXvGetPortAttribute(client)); break;
case xv_QueryBestSize: result = (ProcXvQueryBestSize(client)); break;
case xv_QueryPortAttributes: result = (ProcXvQueryPortAttributes(client)); break;
case xv_PutImage:
#ifdef PANORAMIX
if(!noPanoramiXExtension)
- result = (XineramaXvPutImage(client));
+ result = (XineramaXvPutImage(client)); break;
else
#endif
- result = (ProcXvPutImage(client));
- break;
+ result = (ProcXvPutImage(client)); break;
#ifdef MITSHM
case xv_ShmPutImage:
#ifdef PANORAMIX
if(!noPanoramiXExtension)
- result = (XineramaXvShmPutImage(client));
+ result = (XineramaXvShmPutImage(client)); break;
else
#endif
- result = (ProcXvShmPutImage(client));
- break;
+ result = (ProcXvShmPutImage(client)); break;
#endif
case xv_QueryImageAttributes: result = (ProcXvQueryImageAttributes(client)); break;
case xv_ListImageFormats: result = (ProcXvListImageFormats(client)); break;