[GRASSLIST:3004] Re: how to resize d.mon window?

Glynn Clements glynn.clements at virgin.net
Fri Jan 25 23:15:01 EST 2002


Eric G. Miller wrote:

> > Sorry for the annoying question; it was a window manager issue.  
> > 
> > Does anyone know why the d.mon window might be treated differently than
> > a "normal" X window?
> 
> Yes. The X window monitors have some hackery to temporarily freeze the
> window size during a redraw event.  Apparently, Blackbox interprets this
> to mean it is a fixed size window.  It appears to be a specific issue
> with blackbox.  Its too bad, 'cause I like blackbox.

Actually:

1. The window size is frozen while a client is connected, *unless* the
client was spawned by the monitor to perform a redraw.

2. The problem also seems to occur on dtwm.

Unfortunately, freezing the window size while a client is connected is
necessary[1]. Neither XDRIVER nor the libraries and programs which use
it can cope with the monitor size changing at arbitrary times.

[1] Actually, it would be possible to simply ignore the resize while a
client is connected, but this looks ugly (the background pixmap which
acts as the monitor's "framebuffer" will be tiled across the window),
and will probably result in "bug" reports.

For the record, the specific problem is that the monitor window sets a
minimum/maxmimum size via the WM_NORMAL_HINTS property, then later
removes the limit. Certain WMs seem to "remember" the limit after it
has been removed.

The most obvious workaround (changing the size limit to the screen
size rather than removing it) negatively impacts upon other WMs, as
maximising the window causes it to be enlarged such that the overall
window size is larger than the screen, due to the WM's decorations.

In case anyone who experiences this problem wishes to report it to the
developers of their WM, I would suggest sending them the output from
"xprop", and pointing out that the window can't be resized when the
WM_NORMAL_HINTS property seems to suggest otherwise.

As for specifying the monitor size at startup, use the environment
variables XDRIVER_WIDTH and XDRIVER_HEIGHT, e.g.

	XDRIVER_WIDTH=640
	XDRIVER_HEIGHT=480
	export XDRIVER_WIDTH XDRIVER_HEIGHT

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



More information about the grass-user mailing list