[menu] refactoring + fixes + mouse handling