diff options
author | Ulrich Sibiller <uli42@gmx.de> | 2019-01-10 22:35:02 +0100 |
---|---|---|
committer | Ulrich Sibiller <uli42@gmx.de> | 2019-01-14 00:09:09 +0100 |
commit | 4a7faa8bd0b8918900f442d097a6e946415d1ea7 (patch) | |
tree | 7cc5ae7b5d070fec1feb05dc3c55ebc5b205fa27 /nx-X11/programs/Xserver/hw/nxagent | |
parent | 4214a719a0c0564e7c4ced565e0a28ecdcc7f2d7 (diff) | |
download | nx-libs-4a7faa8bd0b8918900f442d097a6e946415d1ea7.tar.gz nx-libs-4a7faa8bd0b8918900f442d097a6e946415d1ea7.tar.bz2 nx-libs-4a7faa8bd0b8918900f442d097a6e946415d1ea7.zip |
Window.c: move WM_STATE handling to separate function
Diffstat (limited to 'nx-X11/programs/Xserver/hw/nxagent')
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Window.c | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Window.c b/nx-X11/programs/Xserver/hw/nxagent/Window.c index 82f4991c3..c404d0a46 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Window.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Window.c @@ -1822,6 +1822,18 @@ Bool nxagentChangeWindowAttributes(WindowPtr pWin, unsigned long mask) return 1; } +void nxagentSetWMState(WindowPtr pWin, CARD32 desired) +{ + Atom prop = MakeAtom("WM_STATE", strlen("WM_STATE"), True); + nxagentWMStateRec wmState = {.state = desired, .icon = None}; + if (ChangeWindowProperty(pWin, prop, prop, 32, 0, 2, &wmState, 1) != Success) + { + #ifdef WARNING + fprintf(stderr, "%s: Changing WM_STATE failed.\n", __func__); + #endif + } +} + Bool nxagentRealizeWindow(WindowPtr pWin) { if (nxagentScreenTrap == 1) @@ -1843,14 +1855,7 @@ Bool nxagentRealizeWindow(WindowPtr pWin) /* 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"); - } + nxagentSetWMState(pWin, NormalState); } /* @@ -1878,7 +1883,7 @@ Bool nxagentRealizeWindow(WindowPtr pWin) #ifdef TEST if (nxagentOption(Rootless) && nxagentLastWindowDestroyed) { - fprintf(stderr, "nxagentRealizeWindow: Window realized. Stopped termination for rootless session.\n"); + fprintf(stderr, "%s: Window realized. Stopped termination for rootless session.\n", __func__); } #endif @@ -1899,14 +1904,11 @@ Bool nxagentUnrealizeWindow(WindowPtr pWin) /* 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"); - } + /* + * The original _comment_ was WithdrawnState, while the _value_ + * was 3, which is IconicState. + */ + nxagentSetWMState(pWin, IconicState); } XUnmapWindow(nxagentDisplay, nxagentWindow(pWin)); |