< prev index next >
src/java.desktop/macosx/classes/sun/lwawt/macosx/CAccessibility.java
Print this page
*** 27,41 ****
import sun.lwawt.LWWindowPeer;
import java.awt.*;
import java.beans.*;
- import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.util.*;
import java.util.concurrent.Callable;
- import sun.awt.AWTAccessor;
import javax.accessibility.*;
import javax.swing.*;
import sun.awt.AWTAccessor;
--- 27,39 ----
*** 71,83 ****
private CAccessibility() {
KeyboardFocusManager.getCurrentKeyboardFocusManager().addPropertyChangeListener("focusOwner", this);
}
public void propertyChange(final PropertyChangeEvent evt) {
! if (evt.getNewValue() == null) return;
focusChanged();
}
private native void focusChanged();
static <T> T invokeAndWait(final Callable<T> callable, final Component c) {
try {
--- 69,93 ----
private CAccessibility() {
KeyboardFocusManager.getCurrentKeyboardFocusManager().addPropertyChangeListener("focusOwner", this);
}
public void propertyChange(final PropertyChangeEvent evt) {
! Object newValue = evt.getNewValue();
! if (newValue == null) return;
! // Don't post focus on things that don't matter, i.e. alert, colorchooser,
! // desktoppane, dialog, directorypane, filechooser, filler, fontchoose,
! // frame, glasspane, layeredpane, optionpane, panel, rootpane, separator,
! // tooltip, viewport, window.
! // List taken from initializeRoles() in JavaComponentUtilities.m.
! if (newValue instanceof Accessible) {
! AccessibleContext nvAC = ((Accessible) newValue).getAccessibleContext();
! AccessibleRole nvRole = nvAC.getAccessibleRole();
! if (!ignoredRoles.contains(roleKey(nvRole))) {
focusChanged();
}
+ }
+ }
private native void focusChanged();
static <T> T invokeAndWait(final Callable<T> callable, final Component c) {
try {
*** 674,684 ****
if (context == null) continue;
if (whichChildren == JAVA_AX_VISIBLE_CHILDREN) {
if (!context.getAccessibleComponent().isVisible()) continue;
} else if (whichChildren == JAVA_AX_SELECTED_CHILDREN) {
! if (!ac.getAccessibleSelection().isAccessibleChildSelected(i)) continue;
}
if (!allowIgnored) {
final AccessibleRole role = context.getAccessibleRole();
if (role != null && ignoredRoles != null && ignoredRoles.contains(roleKey(role))) {
--- 684,697 ----
if (context == null) continue;
if (whichChildren == JAVA_AX_VISIBLE_CHILDREN) {
if (!context.getAccessibleComponent().isVisible()) continue;
} else if (whichChildren == JAVA_AX_SELECTED_CHILDREN) {
! AccessibleSelection sel = ac.getAccessibleSelection();
! if (sel == null || !sel.isAccessibleChildSelected(i)) {
! continue;
! }
}
if (!allowIgnored) {
final AccessibleRole role = context.getAccessibleRole();
if (role != null && ignoredRoles != null && ignoredRoles.contains(roleKey(role))) {
< prev index next >