restrict floats to one at a time
if there's a float then only consider widgets within the container
rework dropdown to catch context clicks and close the popup