From a3f3a35fd17349ce2d0e3c3b213e6d8f10855c99 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Mon, 10 Aug 2015 12:18:00 +0800 Subject: [PATCH] mac: Don't emit "clicked" event if there is menu attached --- atom/browser/ui/tray_icon_cocoa.mm | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/atom/browser/ui/tray_icon_cocoa.mm b/atom/browser/ui/tray_icon_cocoa.mm index 055ac12c404..3ac865cce5a 100644 --- a/atom/browser/ui/tray_icon_cocoa.mm +++ b/atom/browser/ui/tray_icon_cocoa.mm @@ -207,23 +207,26 @@ const CGFloat kVerticalTitleMargin = 2; } inMouseEventSequence_ = NO; - // Single click - if (event.clickCount == 1) { - if (menuController_) { - [statusItem_ popUpStatusItemMenu:[menuController_ menu]]; - } + // Show menu when single clicked on the icon. + if (event.clickCount == 1 && menuController_) + [statusItem_ popUpStatusItemMenu:[menuController_ menu]]; + // Don't emit click events when menu is showing. + if (menuController_) + return; + + // Single click event. + if (event.clickCount == 1) trayIcon_->NotifyClicked( [self getBoundsFromEvent:event], ui::EventFlagsFromModifiers([event modifierFlags])); - } - // Double click - if (event.clickCount == 2 && !menuController_) { + // Double click event. + if (event.clickCount == 2) trayIcon_->NotifyDoubleClicked( [self getBoundsFromEvent:event], ui::EventFlagsFromModifiers([event modifierFlags])); - } + [self setNeedsDisplay:YES]; }