The right-click ContextMenu never tracked hover (the listener was a
no-op), so rows did not highlight and parent items never opened their
submenus. Hover now drives the highlight and opens the parent's
submenu, with Left/Right and Enter keyboard parity.
The submenu is an absolutely positioned child of the popup instead of
a second window-anchored popup computed from the raw click point, so
it follows the popup's final snapped/switched bounds and can never
detach from its parent row.