More of the previous commit. More TODOs.

This commit is contained in:
Pietro Gagliardi 2015-04-10 23:24:21 -04:00
parent 347a254d9f
commit ebb77919f9
4 changed files with 6 additions and 5 deletions

View File

@ -5,6 +5,7 @@
- deleted objects view
- assign control IDs on windows
- GWL(P)_ID
- make sure all terminology is consistent
ultimately:
- make everything vtable-based

View File

@ -43,7 +43,7 @@
// we are not in control of the actual lifetimes and refcounts of NSViews (see http://stackoverflow.com/a/29523141/3408572)
// when we're done with a view, it'll be added as a subview of this one, and this one will be released on application shutdown
// we need this separate view because it's possible for controls to have no parent but still be alive
NSView *deletedControlsView;
NSView *destroyedControlsView;
uiInitOptions options;
@ -57,7 +57,7 @@ const char *uiInit(uiInitOptions *o)
[NSApp setDelegate:[uiAppDelegate new]];
// we can use a stock NSView for this
deletedControlsView = [[NSView alloc] initWithFrame:NSZeroRect];
destroyedControlsView = [[NSView alloc] initWithFrame:NSZeroRect];
return NULL;
}

View File

@ -14,7 +14,7 @@ static void singleDestroy(uiControl *c)
{
singleView *s = (singleView *) (c->internal);
[deletedControlsView addSubview:s->immediate];
[destroyedControlsView addSubview:s->immediate];
}
static uintptr_t singleHandle(uiControl *c)
@ -117,7 +117,7 @@ BOOL uiDarwinControlFreeWhenAppropriate(uiControl *c, NSView *newSuperview)
{
singleView *s = (singleView *) (c->internal);
if (newSuperview == deletedControlsView) {
if (newSuperview == destroyedControlsView) {
[s->immediate release]; // we don't need the reference anymore
uiFree(s);
uiFree(c);

View File

@ -25,7 +25,7 @@
}
// init_darwin.m
extern NSView *deletedControlsView;
extern NSView *destroyedControlsView;
// util_darwin.m
extern void setStandardControlFont(NSControl *);