X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/065e208ec09e3d08d51d9604497f92f53c210f93..537a0880d225ab023024f6f5fc8955666b7641b8:/src/cocoa/toplevel.mm diff --git a/src/cocoa/toplevel.mm b/src/cocoa/toplevel.mm index 43fb63faf2..4778cc3668 100644 --- a/src/cocoa/toplevel.mm +++ b/src/cocoa/toplevel.mm @@ -102,19 +102,30 @@ bool wxTopLevelWindowCocoa::Create(wxWindow *parent, if(style & wxFRAME_TOOL_WINDOW) cocoaStyle |= NSUtilityWindowMask; - wxPoint realpos = pos; - wxSize realsize = size; - // FIXME: this is lame - if(realpos.x==-1) - realpos.x=100; - if(realpos.y==-1) - realpos.y=100; - if(realsize.x==-1) - realsize.x=200; - if(realsize.y==-1) - realsize.y=200; + // Create frame and check and handle default position and size + int realx, + realy; + + // WX has no set default position - the carbon port caps the low + // end at 20, 50. Here we do the same, except instead of setting + // it to 20 and 50, we set it to 100 and 100 if the values are too low + if (pos.x < 20) + realx = 100; + else + realx = pos.x; + + if (pos.y < 50) + realy = 100; + else + realy = pos.y; + + int realw = WidthDefault(size.x); + int realh = HeightDefault(size.y); + // NOTE: y-origin needs to be flipped. - NSRect cocoaRect = [NSWindow contentRectForFrameRect:NSMakeRect(realpos.x,realpos.y,realsize.x,realsize.y) styleMask:cocoaStyle]; + NSRect cocoaRect = [NSWindow + contentRectForFrameRect:NSMakeRect(realx,realy,realw,realh) + styleMask:cocoaStyle]; m_cocoaNSWindow = NULL; m_cocoaNSView = NULL; @@ -140,6 +151,8 @@ wxTopLevelWindowCocoa::~wxTopLevelWindowCocoa() wxASSERT(sm_cocoaDeactivateWindow!=this); wxAutoNSAutoreleasePool pool; DestroyChildren(); + if(m_cocoaNSView) + SendDestroyEvent(); SetNSWindow(NULL); }