[GRASS5] Monitor Resize Problem
Glynn Clements
glynn.clements at virgin.net
Wed Jul 18 21:33:14 EDT 2001
Bob Covill wrote:
> > > The window manager I am using on the Sun is the dtwm, part of the
> > > Solaris install. I do not know the version number off hand, but it is
> > > the one packaged with Solaris 7, if that helps.
> > >
> > > Below is the output from xprops on the monitor ....
> > >
> > > WM_STATE(WM_STATE):
> > > window state: Normal
> > > icon window: 0x3404224
> > > _DT_WORKSPACE_PRESENCE(_DT_WORKSPACE_PRESENCE) = 0x101
> > > WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW
> > > WM_CLASS(STRING) = "x0", "GRASS 5.0.0pre1"
> > > WM_HINTS(WM_HINTS):
> > > bitmap id # to use for icon: 0x6800002
> > > WM_NORMAL_HINTS(WM_SIZE_HINTS):
> > > program specified size: 450 by 400
> >
> > This suggests that the WM ought to allow the window to be resized.
> > When resize is (intentionally) inhibited, xprop should show:
> >
> > WM_NORMAL_HINTS(WM_SIZE_HINTS):
> > program specified size: 450 by 400
> > program specified minimum size: 450 by 400
> > program specified maximum size: 450 by 400
> >
> > Can you try modifying src/display/devices/XDRIVER/XDRIVER24/Client.c,
> > line 22. Currently, it should read:
> >
> > szhints->flags = PSize;
> >
> > Settings worth trying include
> >
> > szhints->flags = PPosition | PSize;
>
> WM_NORMAL_HINTS(WM_SIZE_HINTS):
> program specified location: 0, 0
> program specified size: 450 by 400
>
> > and
> > szhints->flags = USPosition | USSize;
>
> WM_NORMAL_HINTS(WM_SIZE_HINTS):
> user specified location: 0, 0
> user specified size: 450 by 400
>
> > and
> > szhints->flags = 0;
>
> WM_NORMAL_HINTS(WM_SIZE_HINTS):
>
> >
> > Let me know which of these (if any) work.
> >
> > --
> > Glynn Clements <glynn.clements at virgin.net>
>
> Glynn,
>
> I tried the above changes to Client.c. I have appended the output from
> xprop to each change, if that helps. Note that there were no HINTS for
> flag = 0.
>
> I was not able to resize the monitor after the abovce changes with the
> exception of "flags = 0". In the case of "flags = 0" I was able to
> resize the monitor until I drew in it. After that I was unable to resize
> it. The size seems to be getting locked somehow?? Could it be leaving a
> lock (??) file somewhere?
There's no file involved; the only way in which the min/max size could
become permanent is if the WM records the min/max size but then
ignores their subsequent removal. In which case, the only solution
would be to never specify a min/max size.
This appears to be a WM bug. I'd expect that with KDE, but not dtwm.
However, I would also expect such a bug to break most X programs.
One further check to perform: disable set_size() completely (i.e.
delete/comment/"#if 0" the entire body). This should result in the old
behaviour.
> For the above changes, I only did "gmake5 -i" in the XDRIVER24
> directory. Does anything else have to be rebuilt to pick up the changes?
No. And the xprop output indicates that the changes *are* being picked
up.
--
Glynn Clements <glynn.clements at virgin.net>
More information about the grass-dev
mailing list