Acceleratoren

Tagamoga

Mitglied
Hallo Allerseits. Ich benutzte Eclipse Ganymede und entwickle an einem RCP/SWT Plugin-Projekt.

An einingen Stellen (Hauptsächlich in den Actions) definiere ich die Acceleratoren mit:

this.setAccelerator(SWT.CTRL|SWT.ARROW_LEFT);

Die Zeile oben wird auch brav angezeigt, aber soetwas nicht:

this.setAccelerator(SWT.CTRL|'C');

Woran kann das liegen!

Danke im Vorras, Taggi
 
Moin,

ist nur 'ne Vermutung, aber "SWT.CTRL" etc. werden Integer-Konstanten sein, während Dein 'C' halt ein Character ist !

Gruß
Klaus
 
Characters sind in Java intern als Integer definiert. Das stört ihn deshalb nicht.

Das Problem ist, dass ein

this.setAccelerator(SWT.CTRL|'A');

funkioniert, aber ein

this.setAccelerator(SWT.CTRL|'C');

nicht. Und das verstehe ich nicht...
 
Das liegt vermutlich daran, dass irgend ein Filter eines Plugins Ctrl + C bereits vorher abfängt. Das selbe passiert an manchen Stellen auch, wenn du zum Beispiel die Entertaste abfangen willst.
Filter = eine Art 'Superlistener' die man beim Display registrieren kann. Diese werden vor den Listenern abgearbeitet und können events abblocken, verändern etc.

Edit:
Das würde heissen, der Accelerator wird richtig gesetzt, kriegt nur nie den Event.
 
Zuletzt bearbeitet:
Zurück