diff --git a/ivette/src/dome/main/menubar.ts b/ivette/src/dome/main/menubar.ts index a0095ce60be15ec10382a3c6638d91fcde4dd805..52f4212c96f0e09a6e8a85866acf4ac1b1e5b16e 100644 --- a/ivette/src/dome/main/menubar.ts +++ b/ivette/src/dome/main/menubar.ts @@ -404,7 +404,7 @@ export function setMenuItem({ id, ...options }: CustomMenuItem) { if (entry) { if (entry.spec) Object.assign(entry.spec, options); if (entry.item) Object.assign(entry.item, options); - if (options.label || options.type || options.click) requestUpdate(); + requestUpdate (); } else console.warn(`[Dome] unknown menu item #${id}`); } diff --git a/ivette/src/frama-c/kernel/ASTview.tsx b/ivette/src/frama-c/kernel/ASTview.tsx index 304abf081328c6fe6087c75d45bc03832ed54e02..339961b65b0344a4dddf128fdbbeb1b71abb56b5 100644 --- a/ivette/src/frama-c/kernel/ASTview.tsx +++ b/ivette/src/frama-c/kernel/ASTview.tsx @@ -31,8 +31,6 @@ import _ from 'lodash'; import * as Server from 'frama-c/server'; import * as States from 'frama-c/states'; import * as RichText from 'frama-c/richtext'; -import * as Eva from 'frama-c/plugins/eva/api/general'; -import { evaluateEvent } from 'frama-c/plugins/eva/valuetable'; import * as Dome from 'dome'; import { RichTextBuffer } from 'dome/text/buffers'; @@ -249,9 +247,7 @@ export default function ASTview() { if (meta) States.MetaSelection.emit(location); } - const computationState = States.useSyncValue(Eva.computationState); async function onContextMenu(markerId: string) { - onSelection(markerId); const items = []; const selectedMarkerInfo = markersInfo.getData(markerId); if (selectedMarkerInfo?.var === 'function') { @@ -305,13 +301,6 @@ export default function ASTview() { enabled, onClick: () => onClick('Reads'), }); - if (computationState === 'computed') { - items.push({ - label: 'Evaluate', - enabled: true, - onClick: () => evaluateEvent.emit(), - }); - } if (items.length > 0) Dome.popupMenu(items); } diff --git a/ivette/src/frama-c/plugins/eva/valuetable.tsx b/ivette/src/frama-c/plugins/eva/valuetable.tsx index c60093ea90b1fcba3bb6e1b8493d68126f50c633..00c3b7738bac9049344c90b3addc42ce9b28d34f 100644 --- a/ivette/src/frama-c/plugins/eva/valuetable.tsx +++ b/ivette/src/frama-c/plugins/eva/valuetable.tsx @@ -949,6 +949,10 @@ function useEvaluationMode(props: EvaluationModeProps): void { key: 'Cmd+E', onClick: () => evaluateEvent.emit(), }); + React.useEffect(() => { + Dome.setMenuItem({ id: 'EvaluateMenu', enabled: true }); + return () => Dome.setMenuItem({ id: 'EvaluateMenu', enabled: false }); + }); } /* -------------------------------------------------------------------------- */