Fix a regression in the alert sheet functions which has introduced a

variant of #26101 where only one callback was used.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@28959 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Wolfgang Lux 2009-11-05 21:56:42 +00:00
parent 01eaad1d05
commit 6fbd4717a5
2 changed files with 27 additions and 0 deletions

View file

@ -1,3 +1,9 @@
2009-11-05 Wolfgang Lux <wolfgang.lux@gmail.com>
* Source/NSAlert.m (NSBeginAlertSheet, NSBeginCriticalAlertSheet,
NSBeginInformationalAlertSheet): Call the didEndSelector after the
sheet has been closed.
2009-11-04 Fred Kiefer <FredKiefer@gmx.de>
* Source/NSColor.m (GSRGBColor -getComponents:): Correct

View file

@ -1547,6 +1547,13 @@ void NSBeginAlertSheet(NSString *title,
contextInfo: contextInfo];
[panel close];
if (modalDelegate && [modalDelegate respondsToSelector: didEndSelector])
{
void (*didEnd)(id, SEL, id, int, void*);
didEnd = (void (*)(id, SEL, id, int, void*))[modalDelegate
methodForSelector: didEndSelector];
didEnd(modalDelegate, didEndSelector, panel, [panel result], contextInfo);
}
NSReleaseAlertPanel(panel);
}
@ -1579,6 +1586,13 @@ void NSBeginCriticalAlertSheet(NSString *title,
didEndSelector: willEndSelector
contextInfo: contextInfo];
[panel close];
if (modalDelegate && [modalDelegate respondsToSelector: didEndSelector])
{
void (*didEnd)(id, SEL, id, int, void*);
didEnd = (void (*)(id, SEL, id, int, void*))[modalDelegate
methodForSelector: didEndSelector];
didEnd(modalDelegate, didEndSelector, panel, [panel result], contextInfo);
}
NSReleaseAlertPanel(panel);
}
@ -1613,6 +1627,13 @@ void NSBeginInformationalAlertSheet(NSString *title,
didEndSelector: willEndSelector
contextInfo: contextInfo];
[panel close];
if (modalDelegate && [modalDelegate respondsToSelector: didEndSelector])
{
void (*didEnd)(id, SEL, id, int, void*);
didEnd = (void (*)(id, SEL, id, int, void*))[modalDelegate
methodForSelector: didEndSelector];
didEnd(modalDelegate, didEndSelector, panel, [panel result], contextInfo);
}
NSReleaseAlertPanel(panel);
}