[comp.windows.x] VPaned widget acts strangely ... or so it seems to me ...

vix@ubvax.UB.Com (Paul Vixie) (03/26/88)

Since the VPaned widget docs talk about its ability to resize itself when
new panes are added after the VPane has been (managed,mapped,realized), I
decided to try a different scheme for the menus I'm trying to build:

	Shell
		VPaned
			Box
				Command
				Command
				...
			Box
				Command
				Command
				...
			Box
				Command
				Command
				...

The Box-full-of-Commands are added one-by-one as items are selected from
menus; the result is supposed to be a new pane for each menu, growing down-
ward.  This works perfectly for the first two menus.  The top one, when
created, gets a VPane border beneath it with no resize knob since it's the
only pane.  I've arranged things so that when a command is selected from
this menu, another menu is added to the VPane, causing a resize knob to
appear on the pane border seperating it from the top menu, and a border to
appear below the second menu (with a resize knob).  All fine.

	==============================
	File Edit Quit				(no this is not the real menu)
	---------------------------X--		(X = resize knob)
	Add Change Delete quit
	---------------------------X--

						(blank space)

	==============================

Then I select something on this second menu, which causes a third menu to be
created and added to the VPaned widget.  This is where odd things happen.

	==============================
	File Edit Quit				(no this is not the real menu)
	---------------------------X--		(X = resize knob)
	---------------------------X--
	Planes Trains Automobiles		(third menu, just added)
	---------------------------X--

						(blank space)

	==============================

Note that the second menu is now invisible.  The resize knobs are so adjacent
that they touch.  Grabbing the resize knob and moving it downward, I can make
the second menu visible -- so I know (a) that it's still there, and (b) that
the insertion_order is correct and that the third menu was added to the end
of the VPaned child list rather than inserted in the middle somewhere.

In a previous note, I asked this list for patches to the Xt for Suns -- noone
has volunteered so far.  Perhaps this odd behaviour is caused by one such bug.
I don't have any non-Sun server or client machines to try this on, so I don't
really know how to approach it.

Maybe there's an argument to XtCreateManagedWidget for the submenus that I
need but don't know about.  Enlightenment appreciated.
-- 
Paul Vixie
Consultant        Work: 408-562-7798    vix@ub.com    vix%ubvax@uunet.uu.net
Ungermann-Bass    Home: 415-647-7023    {amdahl,ptsfa,pyramid,uunet}!ubvax!vix
Santa Clara, CA              <<I do not speak for Ungermann-Bass>>

swick@ATHENA.MIT.EDU (Ralph R. Swick) (03/29/88)

The VPaned widget has some fairly intricate heuristics to try to fill
it's entire height by stretching one or more of the panes, since it
wasn't originally planned that there be empty space allowed below
the bottom pane.  There's every chance of an odd interaction between
these heuristics and your constraint specifications.

If you send me a short test case, perhaps I'll look into it and see
if the situation can be improved without breaking old code.  I like
the structure you're attempting to build, and I have a couple of
proposals for compatible extentions to the constraint specifications.

-Ralph