| Index: content/browser/accessibility/browser_accessibility_win.cc
|
| diff --git a/content/browser/accessibility/browser_accessibility_win.cc b/content/browser/accessibility/browser_accessibility_win.cc
|
| index 816aa2bf3ff8f229fc121d7438d08909061a22cb..76060e0aea5844a84f4339c729524cb365abf298 100644
|
| --- a/content/browser/accessibility/browser_accessibility_win.cc
|
| +++ b/content/browser/accessibility/browser_accessibility_win.cc
|
| @@ -3604,6 +3604,18 @@
|
| if (ia_state() != old_win_attributes_->ia_state)
|
| FireNativeEvent(EVENT_OBJECT_STATECHANGE);
|
|
|
| + // Normally focus events are handled elsewhere, however
|
| + // focus for managed descendants is platform-specific.
|
| + // Fire a focus event if the focused descendant in a multi-select
|
| + // list box changes.
|
| + if (GetRole() == ui::AX_ROLE_LIST_BOX_OPTION &&
|
| + (ia_state() & STATE_SYSTEM_FOCUSABLE) &&
|
| + (ia_state() & STATE_SYSTEM_SELECTABLE) &&
|
| + (ia_state() & STATE_SYSTEM_FOCUSED) &&
|
| + !(old_win_attributes_->ia_state & STATE_SYSTEM_FOCUSED)) {
|
| + FireNativeEvent(EVENT_OBJECT_FOCUS);
|
| + }
|
| +
|
| // Handle selection being added or removed.
|
| bool is_selected_now = (ia_state() & STATE_SYSTEM_SELECTED) != 0;
|
| bool was_selected_before =
|
|
|