Commit a269121f authored by Toni Barzic's avatar Toni Barzic Committed by Commit Bot

app list search: Mark tile result as selected when showing context menu

BUG=1086453

Change-Id: If10112007a3116f12011edce5417e1ce794127b6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2219391Reviewed-by: default avatarJenny Zhang <jennyz@chromium.org>
Commit-Queue: Toni Baržić <tbarzic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#772808}
parent 4b90f6fc
...@@ -377,14 +377,20 @@ void SearchResultTileItemView::OnGetContextMenuModel( ...@@ -377,14 +377,20 @@ void SearchResultTileItemView::OnGetContextMenuModel(
views::MenuRunner::USE_TOUCHABLE_LAYOUT | views::MenuRunner::USE_TOUCHABLE_LAYOUT |
views::MenuRunner::CONTEXT_MENU | views::MenuRunner::CONTEXT_MENU |
views::MenuRunner::FIXED_ANCHOR); views::MenuRunner::FIXED_ANCHOR);
source->RequestFocus(); if (!selected()) {
selected_for_context_menu_ = true;
SetSelected(true, base::nullopt);
}
} }
void SearchResultTileItemView::OnMenuClosed() { void SearchResultTileItemView::OnMenuClosed() {
// Release menu since its menu model delegate (AppContextMenu) could be // Release menu since its menu model delegate (AppContextMenu) could be
// released as a result of menu command execution. // released as a result of menu command execution.
context_menu_.reset(); context_menu_.reset();
OnBlur(); if (selected_for_context_menu_) {
selected_for_context_menu_ = false;
SetSelected(false, base::nullopt);
}
} }
void SearchResultTileItemView::ActivateResult(int event_flags, void SearchResultTileItemView::ActivateResult(int event_flags,
......
...@@ -128,6 +128,10 @@ class APP_LIST_EXPORT SearchResultTileItemView ...@@ -128,6 +128,10 @@ class APP_LIST_EXPORT SearchResultTileItemView
const bool is_app_reinstall_recommendation_enabled_; const bool is_app_reinstall_recommendation_enabled_;
const bool show_in_apps_page_; // True if shown in app list's apps page. const bool show_in_apps_page_; // True if shown in app list's apps page.
// Whether the result view moved into selected state only because a context
// menu was shown.
bool selected_for_context_menu_ = false;
std::unique_ptr<AppListMenuModelAdapter> context_menu_; std::unique_ptr<AppListMenuModelAdapter> context_menu_;
base::WeakPtrFactory<SearchResultTileItemView> weak_ptr_factory_{this}; base::WeakPtrFactory<SearchResultTileItemView> weak_ptr_factory_{this};
......
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