The reason is that using tk_popup or post will make the menu appear on the screen for sure, but then the program's focus gets shifted to the user's mouse and keyboard. So, until the user clicks out of the focus of that menu, the program won't be coming out to execute the next lines of the function (in which you are calling the tk_popup for the submenu.)