Index: ui/views/views_delegate.h |
diff --git a/ui/views/views_delegate.h b/ui/views/views_delegate.h |
index e2f33b05caa5e032b7575788c8e6b364d7b61e6d..c881daab09f34eae37173da7ee7d292af26f5fe4 100644 |
--- a/ui/views/views_delegate.h |
+++ b/ui/views/views_delegate.h |
@@ -73,6 +73,16 @@ class VIEWS_EXPORT ViewsDelegate { |
}; |
#endif |
+ enum class ProcessMenuAcceleratorResult { |
+ // The accelerator was handled while the menu was showing. No further action |
+ // is needed and the menu should be kept open. |
+ LEAVE_MENU_OPEN, |
+ |
+ // The accelerator was not handled. Menu should be closed and the |
+ // accelerator will be reposted to be handled after the menu closes. |
+ CLOSE_MENU |
+ }; |
+ |
virtual ~ViewsDelegate(); |
// Returns the ViewsDelegate instance if there is one, or nullptr otherwise. |
@@ -102,6 +112,13 @@ class VIEWS_EXPORT ViewsDelegate { |
int item_count, |
bool has_submenu); |
+ // If |accelerator| can be processed while a menu is showing, it will be |
+ // processed now and LEAVE_MENU_OPEN is returned. Otherwise, |accelerator| |
+ // will be reposted for processing later after the menu closes and CLOSE_MENU |
+ // will be returned. |
+ virtual ProcessMenuAcceleratorResult ProcessAcceleratorWhileMenuShowing( |
+ const ui::Accelerator& accelerator); |
+ |
#if defined(OS_WIN) |
// Retrieves the default window icon to use for windows if none is specified. |
virtual HICON GetDefaultWindowIcon() const; |