9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* [9fans] rio in rio and ghost windows.
@ 2009-04-27 23:27 cinap_lenrek
  2009-04-28  0:48 ` erik quanstrom
  2009-04-30 10:07 ` Sergey Zhilkin
  0 siblings, 2 replies; 4+ messages in thread
From: cinap_lenrek @ 2009-04-27 23:27 UTC (permalink / raw)
  To: 9fans

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




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [9fans] rio in rio and ghost windows.
  2009-04-27 23:27 [9fans] rio in rio and ghost windows cinap_lenrek
@ 2009-04-28  0:48 ` erik quanstrom
  2009-04-30 10:07 ` Sergey Zhilkin
  1 sibling, 0 replies; 4+ messages in thread
From: erik quanstrom @ 2009-04-28  0:48 UTC (permalink / raw)
  To: 9fans

> can anyone confirm this

yes.  your patch properly resizes the hidden window
as well as fixing the bug.

> and may make a patch?

i'll leave that up to you.

- erik



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [9fans] rio in rio and ghost windows.
  2009-04-27 23:27 [9fans] rio in rio and ghost windows cinap_lenrek
  2009-04-28  0:48 ` erik quanstrom
@ 2009-04-30 10:07 ` Sergey Zhilkin
  2009-04-30 21:28   ` cinap_lenrek
  1 sibling, 1 reply; 4+ messages in thread
From: Sergey Zhilkin @ 2009-04-30 10:07 UTC (permalink / raw)
  To: Fans of the OS Plan 9 from Bell Labs

[-- Attachment #1: Type: text/plain, Size: 1066 bytes --]

can't reproduce :( Native system on hp compaq workstation.

2009/4/28 <cinap_lenrek@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

[-- Attachment #2: Type: text/html, Size: 1564 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [9fans] rio in rio and ghost windows.
  2009-04-30 10:07 ` Sergey Zhilkin
@ 2009-04-30 21:28   ` cinap_lenrek
  0 siblings, 0 replies; 4+ messages in thread
From: cinap_lenrek @ 2009-04-30 21:28 UTC (permalink / raw)
  To: 9fans

[-- Attachment #1: Type: text/plain, Size: 846 bytes --]

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

[-- Attachment #2: Type: message/rfc822, Size: 5875 bytes --]

[-- Attachment #2.1.1: Type: text/plain, Size: 1066 bytes --]

can't reproduce :( Native system on hp compaq workstation.

2009/4/28 <cinap_lenrek@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

[-- Attachment #2.1.2: Type: text/html, Size: 1564 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-04-30 21:28 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-04-27 23:27 [9fans] rio in rio and ghost windows cinap_lenrek
2009-04-28  0:48 ` erik quanstrom
2009-04-30 10:07 ` Sergey Zhilkin
2009-04-30 21:28   ` cinap_lenrek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).