aboutsummaryrefslogtreecommitdiff
path: root/debian/patches/108_nxagent_wine-close-delay.full.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/108_nxagent_wine-close-delay.full.patch')
-rw-r--r--debian/patches/108_nxagent_wine-close-delay.full.patch60
1 files changed, 60 insertions, 0 deletions
diff --git a/debian/patches/108_nxagent_wine-close-delay.full.patch b/debian/patches/108_nxagent_wine-close-delay.full.patch
new file mode 100644
index 000000000..875571c48
--- /dev/null
+++ b/debian/patches/108_nxagent_wine-close-delay.full.patch
@@ -0,0 +1,60 @@
+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.
+ */
+@@ -1858,6 +1866,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
+
+ /*
+@@ -1904,6 +1923,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;