aboutsummaryrefslogtreecommitdiffstats
path: root/client.c
diff options
context:
space:
mode:
authorokan2015-01-23 19:35:11 +0000
committerokan2015-01-23 19:35:11 +0000
commit72dff301052179e201744eb75a8e79a19d50d79d (patch)
treec9c872e5b32dab1ecf16cb207106e61bdd000719 /client.c
parent69c7524909cec83591a6cea56722753922d9999a (diff)
downloadcwm-72dff301052179e201744eb75a8e79a19d50d79d.tar.gz
First restore net_wm_state(ewmh), then wm_state(iccc); prevents clients
from re-hiding on restart due to flag toggling (note that this is ripe for re-vamping). Behavior only observed on restarts. Problem found by, and initial patch from, Henri Kemppainen (thanks!), though ever so slightly different one applied.
Diffstat (limited to 'client.c')
-rw-r--r--client.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/client.c b/client.c
index 1dc61f8..6858f50 100644
--- a/client.c
+++ b/client.c
@@ -15,7 +15,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
- * $OpenBSD: client.c,v 1.189 2015/01/19 14:54:16 okan Exp $
+ * $OpenBSD: client.c,v 1.190 2015/01/23 19:35:11 okan Exp $
*/
#include <sys/types.h>
@@ -63,7 +63,6 @@ client_init(Window win, struct screen_ctx *sc)
{
struct client_ctx *cc;
XWindowAttributes wattr;
- long state;
int mapped;
if (win == None)
@@ -125,16 +124,16 @@ client_init(Window win, struct screen_ctx *sc)
/* Notify client of its configuration. */
client_config(cc);
- if ((state = client_get_wm_state(cc)) < 0)
- state = NormalState;
-
- (state == IconicState) ? client_hide(cc) : client_unhide(cc);
-
TAILQ_INSERT_TAIL(&sc->clientq, cc, entry);
xu_ewmh_net_client_list(sc);
xu_ewmh_restore_net_wm_state(cc);
+ if (client_get_wm_state(cc) == IconicState)
+ client_hide(cc);
+ else
+ client_unhide(cc);
+
if (mapped)
group_autogroup(cc);