From e0b8f3eefb64ee95111593c5610f3cc4a680afff Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Tue, 6 Oct 2015 17:12:16 +0200 Subject: Re-add -sync option back to nxagent to allow synchronous debugging of the nxagent DDX. --- nx-X11/programs/Xserver/hw/nxagent/Args.c | 8 ++++++++ nx-X11/programs/Xserver/hw/nxagent/Args.h | 1 + nx-X11/programs/Xserver/hw/nxagent/Display.c | 3 +++ 3 files changed, 12 insertions(+) (limited to 'nx-X11/programs/Xserver/hw') diff --git a/nx-X11/programs/Xserver/hw/nxagent/Args.c b/nx-X11/programs/Xserver/hw/nxagent/Args.c index 07e967065..5c5a1e8f8 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Args.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Args.c @@ -103,6 +103,7 @@ extern int _XGetBitsPerPixel(Display *dpy, int depth); extern char dispatchExceptionAtReset; char nxagentDisplayName[1024]; +Bool nxagentSynchronize = False; char nxagentShadowDisplayName[1024] = {0}; @@ -374,6 +375,13 @@ int ddxProcessArgument(int argc, char *argv[], int i) return 0; } + if (!strcmp(argv[i], "-sync")) { + if (++i < argc) { + nxagentSynchronize = True; + return 1; + } + } + if (!strcmp(argv[i], "-full")) { nxagentFullGeneration = True; return 1; diff --git a/nx-X11/programs/Xserver/hw/nxagent/Args.h b/nx-X11/programs/Xserver/hw/nxagent/Args.h index 85734be23..a1753d841 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Args.h +++ b/nx-X11/programs/Xserver/hw/nxagent/Args.h @@ -50,6 +50,7 @@ extern char nxagentShadowDisplayName[]; extern char nxagentWindowName[]; extern char nxagentDialogName[]; +extern Bool nxagentSynchronize; extern Bool nxagentFullGeneration; extern int nxagentDefaultClass; extern Bool nxagentUserDefaultClass; diff --git a/nx-X11/programs/Xserver/hw/nxagent/Display.c b/nx-X11/programs/Xserver/hw/nxagent/Display.c index b01d66cb0..862ce57d0 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Display.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Display.c @@ -1217,6 +1217,9 @@ FIXME: The agent should never exit the program with a FatalError() FatalError("Unable to open display '%s'.\n", nxagentDisplayName); } + if (nxagentSynchronize) + XSynchronize(nxagentDisplay, True); + nxagentXConnectionNumber = XConnectionNumber(nxagentDisplay); #ifdef TEST -- cgit v1.2.3