menus need to be destroyed using 'deactivate' signal, some need attach_to_widget so they do not break in multiple screens env
menu.popup() menu.connect('deactivate', gtkgui_helpers.on_menu_deactivate)
and there do:
widget.destroy()
also floating menus are bad for mscreen envs. so we need attach_to_widget() call
http://www.pygtk.org/pygtk2reference/class-gtkmenu.html#method-gtkmenu--attach-to-widget
so
menu.attach_to_widget(widget, None)