[GRASS5] Windows native Xdriver

Glynn Clements glynn.clements at virgin.net
Tue Apr 30 14:10:52 EDT 2002


Mike Thomas wrote:

> Since last I worked on the Grass native Windows Xdriver two things seem
> to have gone wrong under Windows XP:
> 
> 1.  It doesn't work at all in the CVS head version of Grass.
> 
> 2.  It displays maps (d.rast, d.vect, d,erase etc) in the
> releasebranch_26_april_2002_5_0_0 tag version

Odd. As the name implies, releasebranch_26_april_2002_5_0_0 was only
created a few days ago; the code in that branch should be almost
identical to the head (certainly, there shouldn't be any differences
which affect the drivers).

> but doesn't react to
> being exposed (after being covered by other windows) or resized, until
> AFTER a new Grass display command (d.rast,d.vect, d,erase etc) is
> executed.  For example, if a raster map is displayed and the Xdriver
> window is covered over by another window then uncovered, the white patch
> does not go away until a command like d.vect is executed.  
> 
> In other words, events seem to be getting buffered somewhere, whereas
> once they were not.
> 
> Having a few weeks holiday at the moment I am poking around in the
> source, but so far with no headway.  Has anyone any hints about changes
> made since last November which might affect event handling in this way?

I can think of one change which might cause this. When no client is
connected, XDRIVER no longer polls the monitor socket; instead, it
uses select() to wait until either a client connects, or until an
event can be read from the connection to the X server.

For this to work with libW11, the descriptor returned by
ConnectionNumber() would have to be readable according to select().

Currently, libW11/w32/xlib.c has:

int
XConnectionNumber(Display* display)
{
	int fd;
	NT_debug ("XConnectionNumber\n");
	fd = open ("/tmp/windows", O_NONBLOCK, 0);
	return 999;
}

This won't work, but returning "fd" might.

-- 
Glynn Clements <glynn.clements at virgin.net>



More information about the grass-dev mailing list