mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-23 07:00:46 +00:00
Correct the calling of the delegate methods in the alert sheet
functions. Should fix #26101. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@28185 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
61d7e0d4fe
commit
d93155a768
2 changed files with 40 additions and 19 deletions
|
@ -1,3 +1,9 @@
|
|||
2009-04-07 Fred Kiefer <FredKiefer@gmx.de>
|
||||
|
||||
* Source/NSAlert.m (NSBeginAlertSheet, NSBeginCriticalAlertSheet,
|
||||
NSBeginInformationalAlertSheet): Correct the calling of delegate
|
||||
methods. This should fix #26101.
|
||||
|
||||
2009-04-07 Fred Kiefer <FredKiefer@gmx.de>
|
||||
|
||||
* Headers/AppKit/NSSplitView.h
|
||||
|
|
|
@ -1298,9 +1298,17 @@ void NSBeginAlertSheet(NSString *title,
|
|||
[NSApp beginSheet: panel
|
||||
modalForWindow: docWindow
|
||||
modalDelegate: modalDelegate
|
||||
didEndSelector: didEndSelector
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -1330,9 +1338,17 @@ void NSBeginCriticalAlertSheet(NSString *title,
|
|||
[NSApp beginSheet: panel
|
||||
modalForWindow: docWindow
|
||||
modalDelegate: modalDelegate
|
||||
didEndSelector: didEndSelector
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -1364,9 +1380,17 @@ void NSBeginInformationalAlertSheet(NSString *title,
|
|||
[NSApp beginSheet: panel
|
||||
modalForWindow: docWindow
|
||||
modalDelegate: modalDelegate
|
||||
didEndSelector: didEndSelector
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -1635,23 +1659,14 @@ void NSBeginInformationalAlertSheet(NSString *title,
|
|||
contextInfo: (void *)contextInfo
|
||||
{
|
||||
[self _setupPanel];
|
||||
if (GSCurrentThread() != GSAppKitThread)
|
||||
{
|
||||
[self performSelectorOnMainThread: _cmd
|
||||
withObject: nil
|
||||
waitUntilDone: YES];
|
||||
}
|
||||
else
|
||||
{
|
||||
_modalDelegate = delegate;
|
||||
_didEndSelector = didEndSelector;
|
||||
[NSApp beginSheet: _window
|
||||
modalForWindow: window
|
||||
modalDelegate: self
|
||||
_modalDelegate = delegate;
|
||||
_didEndSelector = didEndSelector;
|
||||
[NSApp beginSheet: _window
|
||||
modalForWindow: window
|
||||
modalDelegate: self
|
||||
didEndSelector: @selector(_alertDidEnd:returnCode:contextInfo:)
|
||||
contextInfo: contextInfo];
|
||||
DESTROY(_window);
|
||||
}
|
||||
contextInfo: contextInfo];
|
||||
DESTROY(_window);
|
||||
}
|
||||
|
||||
- (void) _alertDidEnd: (NSWindow *)sheet
|
||||
|
|
Loading…
Reference in a new issue