> I don't know enough about low level X details but could it be
> that InputHint is set by default for new windows? If I change
> the above line to:
>
> hints->flags |= IconPixmapHint;
>
> It works as expected, so I assume that the InputHint bit is
> set in the hints returned by XGetWMHints().
Indeed, it would appear so. If I
fprintf(stderr,"%x\n",hints->flags);
fprintf(stderr,"%x\n",hints->input);
right after XGetWMHints, it returns
3 <-- = InputHint|StateHint
1
Thus your solution
> hints->flags |= IconPixmapHint;
of leaving the other bits untouched is of course the much
better approach.
Btw, ctwm apears to want both "InputHint" as well as "input"
to be set: resetting any of the two to zero results in the
behavior you originally described.