Le menu contextuel de PerspectiveSwitcher est créé en profondeur dans les classes internes de l'infrastructure de workbench, comme vous l'avez mentionné. Vous ne pouvez pas l'empêcher d'être créé, vous ne pouvez pas non plus obtenir une référence à PerspectiveSwitcher pour supprimer le menu d'une façon ou d'une autre, sans utiliser les classes internes et beaucoup de réimplémenter les fonctionnalités existantes. Donc, pour simplifier, à mon humble avis, il semble que le menu contextuel ne soit pas censé être supprimé.
Le moyen le plus simple et le plus propre de résoudre votre problème serait de supprimer toute la barre de perspective et de mettre en œuvre la vôtre. Il existe une API publique permettant d'interroger les perspectives existantes (IWorkbench.getPerspectiveRegistry) et de changer de perspective (IWorkbenchPage.setPerspective), tout ce dont vous avez besoin pour coder est l'interface utilisateur.
* [@ user844542 a écrit ce commentaire] * J'essayé d'utiliser, mais n'a pas pu obtenir le 'PerspectiveBar'. Quelle est la bonne classe pour introduire ce code? Ou n'est-ce plus possible? – phihag