It has happened to me that this hung the viewer. The cause is that
when you call parent->getParentFloater(child), then getParentFloater
which starts like this:
LLFloater* LLFloaterView::getParentFloater(LLView* viewp)
{
LLView* parentp = viewp->getParent();
starts with parentp == this. And the following logic causes
it to return 'viewp'!
I'm pretty sure that getParentFloater's whole design is wrong,
but I don't see another way to avoid this problem then with
this hack, except by making changes that do a lot more and
are a risk with regard breaking code elsewhere.