ID:1323850
 
(See the best response by Dariuc.)
Problem description:

I have an interface, within it a child that has the splitter set to lock right/bottom pane, and it just... Doesn't?

Like, my understanding is that if the splitter is set to 50% and it's locked to the right, you cannot move the splitter past that point towards the right.

Either I'm doing something wrong or it's bugged, but I'm stupid so I'm probably doing something wrong, so I thought I'd post here first, before taking it to bug reports.


Best response
This goes without saying but you need to be using both parts of the child(or rather more than one) in order for a splitter to work. Otherwise it will fill the entire child with "whatever" side you have accessed.
I can confirm that he is using both parts of the child.
It doesn't look like "lock" does what you want. All it does is control which pane the splitter moves with when the child is resized:

Allows one pane to "lock" the splitter so if the Child control is resized, the splitter will stay put on that side.
Uh huh, so I guess I have to hardcode it so that the splitter can't go past <x> percentage?
In response to Rushnut
Seems so, unfortunately.

It looks like you can use the "Resize command" on one of your panes to trigger it, though, so it should be relatively easy to set up.
Uhh, care to elaborate?
In response to Rushnut
Sure. Basically you would set the Resize Command on one of your two panes to a client verb (probably the left/top pane). I would suggest setting up the verb to be generic so you can use it anywhere, by passing the name of the child control and the min/max splitter percentage through the Resize Command to the verb.

In the verb, you would winget() the child's current splitter value, and compare it to the min/max you passed in. If it's outside the acceptable range, use winset() to update it.
Oh, by the way you put Resize Command in quotes I thought you meant it was a feature already in DM, my bad.

Yeah that should work, thanks.
In response to Rushnut
Yea, when I say "Resize Command", I'm referring to Edit Window > General Tab > "Resize command:"
if(text2num(winget(src,"default.child1","splitter"))>70)winset(src,"default.child1","splitter=70")


Works like a charm, if anyone's interested.

Thanks DC!