On Fri 17 Jun 2016 at 00:05:19 -0500, Matthew D. Fuller wrote:
> ----------
> === modified file 'menus.c'
> --- menus.c   2014-05-09 13:48:53 +0000
> +++ menus.c   2016-06-17 04:44:26 +0000
> @@ -1638,6 +1638,7 @@
>      MenuDepth++;
>  
>      if (Scr->Root != Scr->CaptiveRoot) {
> +fprintf(stderr, "CAPTIVE %s\n", menu->name);
>        XReparentWindow (dpy, menu->shadow, Scr->Root, x, y);
>        XReparentWindow (dpy, menu->w, Scr->Root, x, y);
>      } else
> 
> ----------

I agree that that `if' there is kind of suspicious. Menu windows get
created as children of Scr->Root already.

Maybe Scr->Root changes when "virtual screens" are involved (it has been
a while, I'd need to recheck that) but if so, this check still seems
wrong. (It might change because with virtual screens, 2 or more
workspaces are visible at the same time and they each have their own
"root" window, which is different from the "real" root window).

The manual page I have doesn't say it isn't allowed to reparent a window
to the parent it already has. But it also doesn't say that in that case
the move to (x,y) happens. It is imaginable that an X server might
simply do nothing (not even the move) if the parent doesn't change.

-Olaf.
-- 
___ Olaf 'Rhialto' Seibert  -- Wayland: Those who don't understand X
\X/ rhialto/at/xs4all.nl    -- are condemned to reinvent it. Poorly.

Attachment: signature.asc
Description: PGP signature

Reply via email to