nanogui: Thread: Complete Desktop Refresh


[<<] [<] Page 1 of 1 [>] [>>]
Subject: Complete Desktop Refresh
From: "Darran D. Rimron-Molloy" ####@####.####
Date: 5 Jan 2002 19:44:40 -0000
Message-Id: <HAEDKNJBOGMNPFLJGKNKAEIPCAAA.ddrm@digital-science.net>

Hi,

I'm looking for a way to cause every application currently running, and
connected to an Nano-X server to refresh (ie, redraw) itself.

I suspect the easiest way to do this is to cause and EXPOSE event on the
GR_ROOT_WINDOW_ID, and that, in turn will cause every child to have an
EXPOSE event, yes? (please correct me if I have this wrong....)

Is there any way to cause this to happen, ie to insert and event into the
server-queue and have it generate the appropriate "child" events and pass
them to the connected applications?

My main concern is, you see, that I will not have control over every
application connecting to the server, many of them can (and will) be 3rd
party and pre-compiled - so forcing these to redraw also becomes and issue.

Unfortunatly, I don't have the option to code all this into a single
process, not even close :( I don't have the source-code to, what could be, a
significant percentage of the connected clients.

Help, please!!! :)

	-Darran


Subject: Re: [nanogui] Complete Desktop Refresh
From: "Greg Haerr" ####@####.####
Date: 12 Jan 2002 06:06:05 -0000
Message-Id: <03bf01c19b2c$91a10600$3aba46a6@xmission.com>

: I'm looking for a way to cause every application currently running, and
: connected to an Nano-X server to refresh (ie, redraw) itself.
: 
: I suspect the easiest way to do this is to cause and EXPOSE event on the
: GR_ROOT_WINDOW_ID, and that, in turn will cause every child to have an
: EXPOSE event, yes? (please correct me if I have this wrong....)

No, this will only cause the unexposed portions of the root window
to be redrawn.  Since the Nano-X server always keeps track of
where each window is, it will never redraw other windows on top
of a given window's expose region, instead, those regions are
clipped out.

A way to cause the server to redraw everything is to execute
the GsRedrawScreen call, but there's no user call for this.
(We don't make it easy for a user program to refresh the screen,
since this should never be required, precompiled binaries or not)
If you really want to do this, use GrQueryTree to get all the active
windows in use on the system, and send GrClearArea to each of
them.  Another way would be to create a topmost window the
size of the screen, map it, and then destroy it.  (the screen will blink)


: 
: Is there any way to cause this to happen, ie to insert and event into the
: server-queue and have it generate the appropriate "child" events and pass
: them to the connected applications?

It doesn't matter if a child window is owned by another process,
the server will handle it correctly.  This is how the window manager
works.


: 
: My main concern is, you see, that I will not have control over every
: application connecting to the server, many of them can (and will) be 3rd
: party and pre-compiled - so forcing these to redraw also becomes and issue.

This shouldn't be an issue - please explain.

Regards,

Greg


: 
: Unfortunatly, I don't have the option to code all this into a single
: process, not even close :( I don't have the source-code to, what could be, a
: significant percentage of the connected clients.
: 
: Help, please!!! :)
: 
: -Darran
: 
: 
: 
: ---------------------------------------------------------------------
: To unsubscribe, e-mail: ####@####.####
: For additional commands, e-mail: ####@####.####
: 

Subject: RE: [nanogui] Complete Desktop Refresh
From: "Darran D. Rimron-Molloy" ####@####.####
Date: 12 Jan 2002 11:06:56 -0000
Message-Id: <HAEDKNJBOGMNPFLJGKNKIEGHCBAA.ddrm@digital-science.net>

> : My main concern is, you see, that I will not have control over every
> : application connecting to the server, many of them can (and will) be 3rd
> : party and pre-compiled - so forcing these to redraw also
> : becomes and issue.
> This shouldn't be an issue - please explain.

The colour status of these applications , all in theory, be read from shm or
similar, and when an application modifies the colour "registry" (ie, what
colour are the buttons drawn in, etc) then all apps need to update, similar
to when you fart around with the colours in Control Panel on Windows.

The flickering way is more than acceptable - I never thought of that.
Thanks. :)

	-Darran


[<<] [<] Page 1 of 1 [>] [>>]


Powered by ezmlm-browse 0.20.