recursion through window children is necessary after all...
XQueryTree can fail, it shouldn't be fatal
simplify implementation, use Xfixes' XFixesHideCursor/XFixesShowCursor

avoids all of the problems that XGrabWindow causes with various
other applications