- &win_x, &win_y, &temp_mask);
- if( ret && child_return == None && win != root_return ) ret = 0;
- if( ret && child_return != None ) ret = match_window(child_return);
+ &win_x, &win_y, &mask_return);
+ if( ret && child_return == None ) ret = 0;
+ if( ret && win != child_return )
+ ret = top_level->match_window(child_return);
+// query pointer can return a window manager window with this top_level as a child
+ if( !ret ) {
+ unsigned int nchildren_return = 0;
+ Window parent_return, *children_return = 0;
+ XQueryTree(top_level->display, child_return, &root_return,
+ &parent_return, &children_return, &nchildren_return);
+ if( children_return ) {
+ if( nchildren_return==1 && children_return[0]==top_level->win )
+ ret = 1;
+ XFree(children_return);
+ }
+ }