Ich muss manchmal global bestimmte KeyEvents abfangen und setze dafür im swt-Display einen Filter wie folgt:
Mein Problem: wenn die Shell disposed wird, bin ich damit aber nicht den Filter im Display los. Dh. bei jeder Taste wird noch der alte Filter aufgerufen der eigentlich nicht mehr existiert.
Meine Fragen:
1) gibt es eine handliche Lösung solche "Anonymen Filter" zu entfernen?
2) gibt es eine Möglichkeit, key-events der aktuellen Shell abzugreifen ohne mit Display zu arbeiten?
Vielleicht hat jemand einen Tip aus der Praxis für mich - ansonsten muss ich den Display-Filter halt anders bauen und im SWT.Close wieder entfernen.
Bernd
Code:
shlIPTC = new Shell(getParent(), getStyle());
[...]
shlIPTC.getDisplay().addFilter(SWT.KeyDown, new Listener() {
public void handleEvent(Event e) {
[....]
}
});
Mein Problem: wenn die Shell disposed wird, bin ich damit aber nicht den Filter im Display los. Dh. bei jeder Taste wird noch der alte Filter aufgerufen der eigentlich nicht mehr existiert.
Meine Fragen:
1) gibt es eine handliche Lösung solche "Anonymen Filter" zu entfernen?
2) gibt es eine Möglichkeit, key-events der aktuellen Shell abzugreifen ohne mit Display zu arbeiten?
Vielleicht hat jemand einen Tip aus der Praxis für mich - ansonsten muss ich den Display-Filter halt anders bauen und im SWT.Close wieder entfernen.
Bernd