fix problem with actions being called twice on Windows with the WinUXTheme

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@31572 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Doug Simons 2010-10-29 14:31:43 +00:00
parent 9915a56da3
commit adbf2dfd48
3 changed files with 17 additions and 0 deletions

View file

@ -1,3 +1,12 @@
2010-10-29 Doug Simons <doug.simons@testplant.com>
* Source/GSThemeMenu.m
* Source/NSPopUpButtonCell.m
Added theme method to identify themes that handle event processing
for PopUp (and PullDown) menus. Use that to prevent duplicate event
handling in NSPopUpButtonCell. This fixes a problem with actions
getting sent twice on Windows with the WinUXTheme.
2010-10-25 Doug Simons <doug.simons@testplant.com>
* Source/GSToolbarCustomizationPalette.m:

View file

@ -130,5 +130,11 @@
{
// default implementation of this method does nothing.
}
- (BOOL) doesProcessEventsForPopUpMenu
{
return NO; // themes that handle events in a popUpMenu should return YES
}
@end

View file

@ -993,6 +993,8 @@ static NSImage *_pbc_image[5];
// Attach the popUp
[self attachPopUpWithFrame: cellFrame
inView: controlView];
if ([[GSTheme theme] doesProcessEventsForPopUpMenu])
return YES; // the theme handles the events, so we're done
p = [[controlView window] convertBaseToScreen: [theEvent locationInWindow]];
p = [menuWindow convertScreenToBase: p];