* Source/NSMenuView.m: Allow any mouse up (left/right/other)

to choose a menu item.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33435 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
ericwa 2011-07-03 06:47:41 +00:00
parent 8d641d707f
commit 3272af2163
2 changed files with 35 additions and 35 deletions

View file

@ -1,3 +1,14 @@
2011-07-03 Eric Wasylishen <ewasylishen@gmail.com>
* Source/NSMenuView.m: Allow any mouse up (left/right/other)
to choose a menu item.
2011-07-02 Eric Wasylishen <ewasylishen@gmail.com>
* Source/NSTextView.m (-_updateState:): Invalidate cursor rects
so the cursor rects over links, for example, are updated when
text is edited.
2011-07-03 Fred Kiefer <FredKiefer@gmx.de> 2011-07-03 Fred Kiefer <FredKiefer@gmx.de>
* Source/NSLayoutManager.m (-drawGlyphsForGlyphRange:atPoint:, * Source/NSLayoutManager.m (-drawGlyphsForGlyphRange:atPoint:,

View file

@ -1445,7 +1445,6 @@ static NSMapTable *viewInfo = 0;
int firstIndex = -1; int firstIndex = -1;
NSEvent *original; NSEvent *original;
NSEventType type; NSEventType type;
NSEventType end;
/* /*
* The original event is unused except to determine whether the method * The original event is unused except to determine whether the method
@ -1457,38 +1456,19 @@ static NSMapTable *viewInfo = 0;
type = [event type]; type = [event type];
if (type == NSRightMouseDown || type == NSRightMouseDragged) eventMask |= NSRightMouseUpMask | NSRightMouseDraggedMask;
{ eventMask |= NSRightMouseDownMask;
end = NSRightMouseUp; eventMask |= NSOtherMouseUpMask | NSOtherMouseDraggedMask;
eventMask |= NSRightMouseUpMask | NSRightMouseDraggedMask; eventMask |= NSOtherMouseDownMask;
eventMask |= NSRightMouseDownMask; eventMask |= NSLeftMouseUpMask | NSLeftMouseDraggedMask;
} eventMask |= NSLeftMouseDownMask;
else if (type == NSOtherMouseDown || type == NSOtherMouseDragged)
{
end = NSOtherMouseUp;
eventMask |= NSOtherMouseUpMask | NSOtherMouseDraggedMask;
eventMask |= NSOtherMouseDownMask;
}
else if (type == NSLeftMouseDown || type == NSLeftMouseDragged)
{
end = NSLeftMouseUp;
eventMask |= NSLeftMouseUpMask | NSLeftMouseDraggedMask;
eventMask |= NSLeftMouseDownMask;
/*We need know if the user press a modifier key to close the menu /*We need know if the user press a modifier key to close the menu
when the menu is in a window*/ when the menu is in a window*/
if (NSInterfaceStyleForKey(@"NSMenuInterfaceStyle", self) == if (NSInterfaceStyleForKey(@"NSMenuInterfaceStyle", self) ==
NSWindows95InterfaceStyle) NSWindows95InterfaceStyle)
{
eventMask |= NSFlagsChangedMask;
}
}
else
{ {
NSLog (@"Unexpected event: %d during event tracking in NSMenuView", type); eventMask |= NSFlagsChangedMask;
end = NSLeftMouseUp;
eventMask |= NSLeftMouseUpMask | NSLeftMouseDraggedMask;
eventMask |= NSLeftMouseDownMask;
} }
/* We attempt to mimic Mac OS X behavior for pop up menus. If the user /* We attempt to mimic Mac OS X behavior for pop up menus. If the user
@ -1518,7 +1498,9 @@ static NSMapTable *viewInfo = 0;
return NO; return NO;
} }
if (type == end) if (type == NSLeftMouseUp ||
type == NSRightMouseUp ||
type == NSOtherMouseUp)
{ {
shouldFinish = YES; shouldFinish = YES;
} }
@ -1713,7 +1695,9 @@ static NSMapTable *viewInfo = 0;
dequeue: YES]; dequeue: YES];
type = [event type]; type = [event type];
} }
while (type != end || shouldFinish == NO); while ((type != NSLeftMouseUp &&
type != NSRightMouseUp &&
type != NSOtherMouseUp) || shouldFinish == NO);
/* /*
* Ok, we released the mouse * Ok, we released the mouse
@ -1873,6 +1857,11 @@ static NSMapTable *viewInfo = 0;
[self mouseDown: theEvent]; [self mouseDown: theEvent];
} }
- (void) otherMouseDown: (NSEvent*) theEvent
{
[self mouseDown: theEvent];
}
- (BOOL) performKeyEquivalent: (NSEvent *)theEvent - (BOOL) performKeyEquivalent: (NSEvent *)theEvent
{ {
return [_attachedMenu performKeyEquivalent: theEvent]; return [_attachedMenu performKeyEquivalent: theEvent];