From d2b48c0b32bd12f7f0e3ccc06b28b3739e558e4c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr>
Date: Tue, 29 Mar 2022 11:38:22 +0200
Subject: [PATCH] [ivette] On meta-selection, pins the selected location in the
 value table.

---
 ivette/src/frama-c/plugins/eva/valuetable.tsx | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/ivette/src/frama-c/plugins/eva/valuetable.tsx b/ivette/src/frama-c/plugins/eva/valuetable.tsx
index 6b5ff2aeb4b..271f1536a2e 100644
--- a/ivette/src/frama-c/plugins/eva/valuetable.tsx
+++ b/ivette/src/frama-c/plugins/eva/valuetable.tsx
@@ -991,6 +991,16 @@ function EvaTable(): JSX.Element {
     setTic(tac + 1);
   }, [fcts, setTic, tac]);
 
+  /* On meta-selection, pin the selected location. */
+  React.useEffect(() => {
+    const pin = (loc: States.Location): void => {
+      const {marker, fct} = loc;
+      if (marker && fct) setLocPin({ target: marker, fct }, true);
+    };
+    States.MetaSelection.on(pin);
+    return () => States.MetaSelection.off(pin);
+  });
+
   /* Callback used to remove a probe */
   const remove = React.useCallback((probe: Probe): void => {
     fcts.removeLocation(probe);
-- 
GitLab