diff --git a/AppKit/CPMenu/_CPMenuManager.j b/AppKit/CPMenu/_CPMenuManager.j index 57f253a65..569db44d4 100644 --- a/AppKit/CPMenu/_CPMenuManager.j +++ b/AppKit/CPMenu/_CPMenuManager.j @@ -102,7 +102,7 @@ var STICKY_TIME_INTERVAL = 500, if (type === CPAppKitDefined) return [self completeTracking]; - [CPApp setTarget:self selector:@selector(trackEvent:) forNextEventMatchingMask:CPKeyDownMask | CPPeriodicMask | CPMouseMovedMask | CPLeftMouseDraggedMask | CPLeftMouseUpMask | CPAppKitDefinedMask | CPScrollWheelMask untilDate:nil inMode:nil dequeue:YES]; + [CPApp setTarget:self selector:@selector(trackEvent:) forNextEventMatchingMask:CPKeyDownMask | CPPeriodicMask | CPMouseMovedMask | CPLeftMouseDraggedMask | CPLeftMouseUpMask | CPRightMouseUpMask | CPAppKitDefinedMask | CPScrollWheelMask untilDate:nil inMode:nil dequeue:YES]; if (type === CPKeyDown) { @@ -224,7 +224,7 @@ var STICKY_TIME_INTERVAL = 500, [CPEvent startPeriodicEventsAfterDelay:0.0 withPeriod:0.04]; } } - else if (type === CPLeftMouseUp) + else if (type === CPLeftMouseUp || type === CPRightMouseUp) { if (_hasMouseGoneUpAfterStartedTracking) [trackingMenu cancelTracking]; diff --git a/Tests/Manual/CPMenuTest/AppController.j b/Tests/Manual/CPMenuTest/AppController.j index 17b1a8896..3c2e43393 100644 --- a/Tests/Manual/CPMenuTest/AppController.j +++ b/Tests/Manual/CPMenuTest/AppController.j @@ -8,6 +8,7 @@ @import +@import "MyView.j" @implementation AppController : CPObject { @@ -16,19 +17,22 @@ - (void)applicationDidFinishLaunching:(CPNotification)aNotification { var theWindow = [[CPWindow alloc] initWithContentRect:CGRectMakeZero() styleMask:CPBorderlessBridgeWindowMask], - contentView = [theWindow contentView]; + contentView = [[MyView alloc] initWithFrame:CGRectMakeZero()]; - var label = [[CPTextField alloc] initWithFrame:CGRectMakeZero()]; + [contentView setAutoresizingMask:CPViewWidthSizable | CPViewHeightSizable]; + [theWindow setContentView:contentView]; - [label setStringValue:@"Hello World!"]; - [label setFont:[CPFont boldSystemFontOfSize:24.0]]; + var popupButton = [[CPPopUpButton alloc] initWithFrame:CGRectMakeZero()]; - [label sizeToFit]; + [popupButton addItemWithTitle:@"Item 1"]; + [popupButton addItemWithTitle:@"Item 2"]; + [popupButton addItemWithTitle:@"Item 3"]; + [popupButton sizeToFit]; - [label setAutoresizingMask:CPViewMinXMargin | CPViewMaxXMargin | CPViewMinYMargin | CPViewMaxYMargin]; - [label setCenter:[contentView center]]; + [popupButton setAutoresizingMask:CPViewMinXMargin | CPViewMaxXMargin | CPViewMinYMargin | CPViewMaxYMargin]; + [popupButton setCenter:[contentView center]]; - [contentView addSubview:label]; + [contentView addSubview:popupButton]; [theWindow orderFront:self]; diff --git a/Tests/Manual/CPMenuTest/MyView.j b/Tests/Manual/CPMenuTest/MyView.j new file mode 100644 index 000000000..0f2b01870 --- /dev/null +++ b/Tests/Manual/CPMenuTest/MyView.j @@ -0,0 +1,18 @@ +@import + +@implementation MyView : CPView +{ +} + +- (CPMenu)menu +{ + var menu = [[CPMenu alloc] initWithTitle:@""]; + + [menu addItemWithTitle:@"Item 1" action:nil keyEquivalent:nil]; + [menu addItemWithTitle:@"Item 2" action:nil keyEquivalent:nil]; + [menu addItemWithTitle:@"Item 3" action:nil keyEquivalent:nil]; + + return menu; +} + +@end \ No newline at end of file