diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2015-02-10 19:14:04 +0100 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2015-02-10 19:40:47 +0100 |
commit | 223f5548b70910a2d745b7b48d2096f29b560def (patch) | |
tree | 50855082ab270ee1369f4bf4337b66242a6612e4 | |
parent | 658d07e939261da0cb4835f03ab908e16540b57c (diff) | |
download | nx-libs-223f5548b70910a2d745b7b48d2096f29b560def.tar.gz nx-libs-223f5548b70910a2d745b7b48d2096f29b560def.tar.bz2 nx-libs-223f5548b70910a2d745b7b48d2096f29b560def.zip |
Wine Close Delay (108_nxagent_wine-close-delay.full.patch).
Wine close delay.
Originally contributed by FreeNX team (dimbor).
-rw-r--r-- | debian/patches/108_nxagent_wine-close-delay.full.patch | 60 | ||||
-rw-r--r-- | debian/patches/series | 1 | ||||
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Window.c | 30 |
3 files changed, 30 insertions, 61 deletions
diff --git a/debian/patches/108_nxagent_wine-close-delay.full.patch b/debian/patches/108_nxagent_wine-close-delay.full.patch deleted file mode 100644 index 7a9c18cf2..000000000 --- a/debian/patches/108_nxagent_wine-close-delay.full.patch +++ /dev/null @@ -1,60 +0,0 @@ -Description: Wine Close Delay - Wine close delay. - . - Originally contributed by FreeNX Team (dimbor). -Forwarded: not-yet -Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> -Last-Update: 2011-12-31 ---- a/nx-X11/programs/Xserver/hw/nxagent/Window.c -+++ b/nx-X11/programs/Xserver/hw/nxagent/Window.c -@@ -176,6 +176,14 @@ - - static int nxagentForceExposure(WindowPtr pWin, pointer ptr); - -+/* by dimbor */ -+typedef struct -+{ -+ CARD32 state; -+ Window icon; -+} -+nxagentWMStateRec; -+ - /* - * This is currently unused. - */ -@@ -1861,6 +1869,17 @@ - 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 - - /* -@@ -1907,6 +1926,17 @@ - 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/debian/patches/series b/debian/patches/series index 7f8abfcba..c904d1894 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -108_nxagent_wine-close-delay.full.patch 110_nxagent_createpixmap-bounds-check.full.patch 200_nxagent_check-binary-x2go-flavour.full.patch 201_nxagent_set-x2go-icon-if-x2goagent-flavour.full.patch diff --git a/nx-X11/programs/Xserver/hw/nxagent/Window.c b/nx-X11/programs/Xserver/hw/nxagent/Window.c index 2ba37a550..c4aedf482 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Window.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Window.c @@ -176,6 +176,14 @@ 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. */ @@ -1861,6 +1869,17 @@ 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: Adding WM_STATE fail.\n"); + } + #ifdef SHAPE /* @@ -1907,6 +1926,17 @@ 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; |