Revert "fix: do not use CONTEXT_MENU flag for tray menu (#23843)" (#24076)

This reverts commit b809d104d0.
This commit is contained in:
Samuel Attard 2020-06-11 11:27:57 -07:00 committed by GitHub
parent 78fe545d18
commit c66282a460
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 40 additions and 6 deletions

View file

@ -14,6 +14,7 @@
#include "base/compiler_specific.h"
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
#include "base/win/scoped_gdi_object.h"
#include "shell/browser/ui/tray_icon.h"
#include "shell/browser/ui/win/notify_icon_host.h"
@ -24,7 +25,8 @@ class Point;
namespace views {
class MenuRunner;
}
class Widget;
} // namespace views
namespace electron {
@ -73,6 +75,7 @@ class NotifyIcon : public TrayIcon {
private:
void InitIconData(NOTIFYICONDATA* icon_data);
void OnContextMenuClosed();
// The tray that owns us. Weak.
NotifyIconHost* host_;
@ -101,6 +104,12 @@ class NotifyIcon : public TrayIcon {
// Context menu associated with this icon (if any).
std::unique_ptr<views::MenuRunner> menu_runner_;
// Temporary widget for the context menu, needed for keyboard event capture.
std::unique_ptr<views::Widget> widget_;
// WeakPtrFactory for CloseClosure safety.
base::WeakPtrFactory<NotifyIcon> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(NotifyIcon);
};