sorry... does it work when you run a graphical app that opens
/dev/mouse like games/catclock in the hidden window?
or try to move the hidden window by picking move from the menu and
point to the area of the hidden window?
more details of the bug:
whide() converts the w->i of a window in a offscreen image and puts
the window in the hidden[] array. but how does the system ignore
that hidden window? here is no check for hidden[] or flags that tell
that the window should be ignored... the answer is w->screenr.
whide() from rio.c is setting w->screenr to ZR by doing wsendctlmsg(w,
Reshaped, ZR, i) so that the window gets not picked anymore by
wpointto(), but wresized() restores w->screenr causing the hidden
window to be an active target again.
the patch is in:
/n/sources/patch/rio-ghostwindows-fix
--
cinap
--- Begin Message ---
can't reproduce :( Native system on hp compaq workstation.
2009/4/28 <cinap_len...@gmx.de>
> Test case:
>
> draw a window... run rio
>
> inside that thing draw another window and hide it.
>
> now rezise the rio window.
>
> now, the region where the window was seems to eat
> mouse events, but the window is hidden.
>
> Fix:
>
> in rio.c:^resized, change this:
> ...
> if(ishidden)
> im = allocimage(display, r, screen->chan, 0,
> DWhite);
> else
> im = allocwindow(wscreen, r, Refbackup, DWhite);
>
> to this:
>
> if(ishidden){
> im = allocimage(display, r, screen->chan, 0,
> DWhite);
> r = ZR;
> }else
> im = allocwindow(wscreen, r, Refbackup, DWhite);
>
>
> can anyone confirm this and may make a patch?
>
> --
> cinap
>
>
>
--
С наилучшими пожеланиями
Жилкин Сергей
With best regards
Zhilkin Sergey
--- End Message ---