mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-05-31 20:10:47 +00:00
* 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:
parent
8d641d707f
commit
3272af2163
2 changed files with 35 additions and 35 deletions
11
ChangeLog
11
ChangeLog
|
@ -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:,
|
||||||
|
|
|
@ -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,40 +1456,21 @@ static NSMapTable *viewInfo = 0;
|
||||||
|
|
||||||
type = [event type];
|
type = [event type];
|
||||||
|
|
||||||
if (type == NSRightMouseDown || type == NSRightMouseDragged)
|
eventMask |= NSRightMouseUpMask | NSRightMouseDraggedMask;
|
||||||
|
eventMask |= NSRightMouseDownMask;
|
||||||
|
eventMask |= NSOtherMouseUpMask | NSOtherMouseDraggedMask;
|
||||||
|
eventMask |= NSOtherMouseDownMask;
|
||||||
|
eventMask |= NSLeftMouseUpMask | NSLeftMouseDraggedMask;
|
||||||
|
eventMask |= NSLeftMouseDownMask;
|
||||||
|
|
||||||
|
/*We need know if the user press a modifier key to close the menu
|
||||||
|
when the menu is in a window*/
|
||||||
|
if (NSInterfaceStyleForKey(@"NSMenuInterfaceStyle", self) ==
|
||||||
|
NSWindows95InterfaceStyle)
|
||||||
{
|
{
|
||||||
end = NSRightMouseUp;
|
eventMask |= NSFlagsChangedMask;
|
||||||
eventMask |= NSRightMouseUpMask | NSRightMouseDraggedMask;
|
|
||||||
eventMask |= NSRightMouseDownMask;
|
|
||||||
}
|
}
|
||||||
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
|
|
||||||
when the menu is in a window*/
|
|
||||||
if (NSInterfaceStyleForKey(@"NSMenuInterfaceStyle", self) ==
|
|
||||||
NSWindows95InterfaceStyle)
|
|
||||||
{
|
|
||||||
eventMask |= NSFlagsChangedMask;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
NSLog (@"Unexpected event: %d during event tracking in NSMenuView", type);
|
|
||||||
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
|
||||||
presses the mouse button over a pop up button and then drags the mouse
|
presses the mouse button over a pop up button and then drags the mouse
|
||||||
over the menu, the menu is closed when the user releases the mouse. On the
|
over the menu, the menu is closed when the user releases the mouse. On the
|
||||||
|
@ -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];
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue