Eu estou passando pelo seguinte problema, eu passei o controle das teclas a um nó lua (por meio da atribuição do seu id a propriedade "service.currentKeyMaster") e depois eu quero passar o controle de volta ao formatador NCL.
Em teoria bastaria teclar "backspace", para simular o efeito da tecla "BACK", que retornaria o controle ao formatador, mas para mim isso não funcionou. O nó lua perde o controle das teclas (e o terminal exibe a mensagem "PresentationContext::setPropertyValue propName = 'service.currentKeyMaster' propValue = ''"), mas o foco não volta a funcionar (nem ao se clicar "backspace" repetidas vezes), e ao se clicar "enter" o nó lua volta a receber eventos de tecla normalmente.
Como o meu código é muito grande eu criei um exemplo menor a fim de reproduzir o bug e postar aqui em busca de auxilio, no entanto, para minha surpresa, o exemplo que eu fiz não apresenta o mesmo comportamento, quando eu teclo "backspace" ele mostra a seguinte mensagem:
PresentationContext::setPropertyValue propName = 'service.currentFocus' propValue = 'ixBotao1'
Isso não faz o nó lua perder o controle e retornar o mesmo ao formatador, mas ao se dar um segundo "backspace" a mensagem abaixo:
Aparece no terminal, e aí sim o foco volta a funcionar e o controle das teclas é do formatador. Eu sinceramente não sei o que a minha aplicação maior tem de diferente desse exemplo que possa influenciar o comportamento dessa maneira, ambas passam o foco da mesma maneira ao nó lua (através de um link onSelectionSet), possuem regiões de tamanho zero, e etc.
Tentei ainda duas outras formas de passar o controle de volta ao formatador, e as adicionei ao exemplo, nos botões "RED" e "GREEN".
O primeiro simplesmente tenta definir o "service.currentKeyMaster" como uma string vazia, o resultado é que o controle das teclas aparentemente acaba no limbo, apesar de aparecer uma mensagem idêntica a de quando é teclada pela segunda vez a tecla "backspace", as teclas não tem mais nenhum efeito sobre a aplicação.
O segundo é um pouco mais elaborado, ele passa o controle das teclas para um outro nó lua, sem utilidade prática nenhuma, e mata esse nó, na tentativa de fazer valer o que a especificação diz na descrição da propriedade "service.currentKeyMaster", "Identificador (id) do elemento <media> que detém o controle das chaves de navegação; se o elemento não estiver sendo apresentado ou não estiver pausado, o controle é do formatador".
Agora estou sinceramente sem saber o que fazer, estou mandando o exemplo que eu fiz, porém o problema que eu quero resolver está na aplicação real, a qual é muito grande (mais de mil linhas de código NCL e seis mil de código lua) para postar no fórum, se algum de vocês puder me aconselhar ao que fazer para conseguir reportar o bug nessa situação, ou possuir um exemplo menor que apresente o mesmo comportamento que eu descrevi para a aplicação maior eu agradeceria muito.
Saudações,
Henrique Becke
Autor: Henrique Becker
66 comentários
Henrique Becker
Henrique Becker