< 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 >