Commit 87a96753 authored by Andrew Xu's avatar Andrew Xu Committed by Commit Bot

[Multipaste] Restore the a11y focus ring after closing the menu

This CL notifies the accessibility side of the closed multipaste menu.
It helps to update the a11y focus ring's location and generate the
suitable voice announcement.

Bug: 1146473
Change-Id: I3892286f6187a9206426af89c1e442cf78362af4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2523058
Commit-Queue: Andrew Xu <andrewxu@chromium.org>
Reviewed-by: default avatarAlex Newcomer <newcomer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#825162}
parent 82269ba9
...@@ -8,7 +8,9 @@ ...@@ -8,7 +8,9 @@
#include "ash/clipboard/clipboard_history_util.h" #include "ash/clipboard/clipboard_history_util.h"
#include "ash/clipboard/views/clipboard_history_item_view.h" #include "ash/clipboard/views/clipboard_history_item_view.h"
#include "ash/public/cpp/clipboard_image_model_factory.h" #include "ash/public/cpp/clipboard_image_model_factory.h"
#include "ash/wm/window_util.h"
#include "base/metrics/histogram_macros.h" #include "base/metrics/histogram_macros.h"
#include "ui/accessibility/ax_enums.mojom.h"
#include "ui/base/clipboard/clipboard.h" #include "ui/base/clipboard/clipboard.h"
#include "ui/base/data_transfer_policy/data_transfer_endpoint.h" #include "ui/base/data_transfer_policy/data_transfer_endpoint.h"
#include "ui/base/data_transfer_policy/data_transfer_policy_controller.h" #include "ui/base/data_transfer_policy/data_transfer_policy_controller.h"
...@@ -21,6 +23,7 @@ ...@@ -21,6 +23,7 @@
#include "ui/views/controls/menu/menu_runner.h" #include "ui/views/controls/menu/menu_runner.h"
#include "ui/views/controls/menu/menu_types.h" #include "ui/views/controls/menu/menu_types.h"
#include "ui/views/controls/menu/submenu_view.h" #include "ui/views/controls/menu/submenu_view.h"
#include "ui/views/widget/widget.h"
namespace ash { namespace ash {
...@@ -351,6 +354,21 @@ void ClipboardHistoryMenuModelAdapter::OnMenuClosed(views::MenuItemView* menu) { ...@@ -351,6 +354,21 @@ void ClipboardHistoryMenuModelAdapter::OnMenuClosed(views::MenuItemView* menu) {
user_journey_time); user_journey_time);
views::MenuModelAdapter::OnMenuClosed(menu); views::MenuModelAdapter::OnMenuClosed(menu);
item_views_by_command_id_.clear(); item_views_by_command_id_.clear();
// This implementation of MenuModelAdapter does not have a widget so we need
// to manually notify the accessibility side of the closed menu.
aura::Window* active_window = window_util::GetActiveWindow();
if (!active_window)
return;
views::Widget* active_widget =
views::Widget::GetWidgetForNativeView(active_window);
DCHECK(active_widget);
views::View* focused_view =
active_widget->GetFocusManager()->GetFocusedView();
if (focused_view) {
focused_view->NotifyAccessibilityEvent(ax::mojom::Event::kMenuEnd,
/*send_native_event=*/true);
}
} }
} // namespace ash } // namespace ash
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment