issue #5183, refactor UILayoutExecutant doLayout method