A widget can intercept only events that occur inside its form,
but how can it intercept an event that has occurred outside of it?
As in my case, when i click on the menu item...
Here is my code: 
ListRenderer.include({...
_onContextMenu: function(event) { // Display custom context menu
    event.preventDefault();
    var target = $(event.currentTarget)[0];
    if (target && target.tagName === 'TR' && target.className === 'o_data_row') {
        var id = $(event.currentTarget).data('id');
        if (id) {
            $('.custom-cm')[0].style.display = 'block';
        }
    }
},
...
});
$(function(){
    $('body').append( // Adding a simple menu to the body of document 
            '<div class="custom-cm">' +
            '<div class="custom-cm__item">Demo #1</div>' +
            '<div class="custom-cm__item">Demo #2</div>' +
            '<div class="custom-cm__item">Demo #3</div>' +
            '<div class="custom-cm__divider"></div>' +
            '<div class="custom-cm__item">Demo #4</div>' +
            '</div>'
    );
    window.addEventListener("contextmenu", () => { // Disable browser contextmenu
        event.preventDefault();
    });
    window.addEventListener("click", () => { // If the right button is pressed, hide the custom context menu
        $(".custom-cm")[0].style.display = 'none';
    }
});