Como posso decidir se uma chave teve .value proibido aplicado?

Como posso decidir se uma chave teve .value proibido aplicado?

Existe uma maneira de decidir se uma determinada chave teve o .value forbiddenmanipulador aplicado?

Por exemplo, eu gostaria de escrever um manipulador .onlyque pudesse ser aplicado a chaves para simular a funcionalidade do Beamer \only. Uma primeira tentativa seria

\pgfkeys{/handlers/.only/.code args={<#1>#2}{%
  \only<#1>{\pgfkeysalso{\pgfkeyscurrentpath = {#2}}}}%
}

No entanto, isso falha para chaves que foram .value forbiddenaplicadas. Executar o seguinte produz um erro porque myred={}é efetivamente o que acontece no slide 2.

\documentclass{beamer}
\usepackage{tikz}

\pgfkeys{/handlers/.only/.code args={<#1>#2}{%
  \only<#1>{\pgfkeysalso{\pgfkeyscurrentpath = {#2}}}}%
}

\begin{document}
  \begin{frame}
    \begin{tikzpicture}[myred/.style={red}, myred/.value forbidden]
      \draw [myred/.only=<2>] (0,0) circle (1.5cm);
    \end{tikzpicture}
  \end{frame}
\end{document}

Se houvesse alguma maneira de decidir se \pgfkeyscurrentpathfoi .value forbiddenaplicado, eu poderia usar essas informações para enviar um valor de \pgfkeysnovalue, em vez de {}, para \pgfkeyscurrentpath.

informação relacionada