diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2013-03-28 08:55:23 +0100 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2013-03-28 08:55:23 +0100 |
commit | e77bf36d9afbc7e56522574b06217d57c11dd095 (patch) | |
tree | 123ed036d60c80c816474f516bc0198be58d8410 /nx-X11/programs/Xserver/hw/nxagent/Window.c | |
parent | d16188f08b659a6dc2a150d84c5ed5d7bf5cf02b (diff) | |
download | nx-libs-e77bf36d9afbc7e56522574b06217d57c11dd095.tar.gz nx-libs-e77bf36d9afbc7e56522574b06217d57c11dd095.tar.bz2 nx-libs-e77bf36d9afbc7e56522574b06217d57c11dd095.zip |
release 3.5.0.19
Diffstat (limited to 'nx-X11/programs/Xserver/hw/nxagent/Window.c')
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Window.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Window.c b/nx-X11/programs/Xserver/hw/nxagent/Window.c index 35a35984a..0a8e8c29b 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. */ @@ -1858,6 +1866,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: Additing WM_STATE fail.\n"); + } + #ifdef SHAPE /* @@ -1904,6 +1923,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; |