Como detectar ctrl-f no meu aplicativo SWT
Escrevi uma interface do usuário do SWT que tem a função principal de exibir texto em um controle StyledText. Quero adicionar um manipulador para Ctrl+F para que, quando esse atalho for pressionado, o foco seja definido como uma caixa de pesquisa. Tentei usar o código a seguir para detectar o pressionamento de tecl
sWindow = new Shell();
...
sWindow.getDisplay().addFilter(SWT.KeyDown, new Listener()
{
@Override
public void handleEvent(Event e)
{
System.out.println("Filter-ctrl: " + SWT.CTRL);
System.out.println("Filter-mask: " + e.stateMask);
System.out.println("Filter-char: " + e.character);
}
});
Eu estava esperando isso quando pressionei Ctrl+f Eu veria a seguinte saída:
Filter-ctrl: 262144
Filter-mask: 262144
Filter-char: f
o entanto, na prática, na verdade, vejo o seguint
Filter-ctrl: 262144
Filter-mask: 262144
Filter-char: <unprintable char - displayed as a box in eclipse console>
Eu tenho duas perguntas
Display.addFilter (...) é a melhor maneira de adicionar um atalho global? Tentei Display.addListener (...), mas isso não recebeu nenhum eventPor que não recebo o caractere pressionado quando estou pressionando Ctrl? Quando pressiono alt ou shift, recebo a máscara esperada e o caractere pressionad