| Summary: | AccessibleObject interfering with default accessibility of Text (with Orca) | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Eclipse Project] Platform | Reporter: | Silenio Quarti <Silenio_Quarti> | ||||
| Component: | SWT | Assignee: | Silenio Quarti <Silenio_Quarti> | ||||
| Status: | RESOLVED FIXED | QA Contact: | |||||
| Severity: | normal | ||||||
| Priority: | P3 | CC: | eclipse.felipe | ||||
| Version: | 3.6 | Flags: | eclipse.felipe:
review+
|
||||
| Target Milestone: | 3.6 RC1 | ||||||
| Hardware: | PC | ||||||
| OS: | Linux-GTK | ||||||
| Whiteboard: | |||||||
| Attachments: |
|
||||||
Created attachment 167047 [details]
fix
Fixed > 20100505 |
SWT creates an AccessibleObject when the free Label relation is added. This causes a lot of code to start running in AccessibleObject even though there is no listener added to Accessible object associated to the text field in the sample below. For example, AcessibleObject.atkText_get_character_at_offset() is called as you type in the text field and the implementation gets the whole text of the widget and returns the character at the offset instead of calling the super optimized implementation. public static void main(String[] args) { // Device.DEBUG = true; Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new GridLayout(1, false)); Label label = new Label(shell, SWT.NONE); label.setText("Hello"); Text text = new Text(shell, SWT.SINGLE | SWT.BORDER); text.setText("Text"); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }