X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/48580976469f7c46b730f96effacfa680e55e3cd..3a7c125370cf6fd2b66eb06ba031efcfd5c5b9b0:/src/cocoa/window.mm diff --git a/src/cocoa/window.mm b/src/cocoa/window.mm index 2bcdeb8c73..aa2bc30b01 100644 --- a/src/cocoa/window.mm +++ b/src/cocoa/window.mm @@ -267,8 +267,8 @@ bool wxWindow::Create(wxWindow *parent, wxWindowID winid, { m_parent->AddChild(this); m_parent->CocoaAddChild(this); + SetInitialFrameRect(pos,size); } - SetInitialFrameRect(pos,size); return TRUE; } @@ -279,7 +279,10 @@ wxWindow::~wxWindow() wxAutoNSAutoreleasePool pool; DestroyChildren(); - CocoaRemoveFromParent(); + // Make sure our parent (in the wxWindows sense) is our superview + // before we go removing from it. + if(m_parent && m_parent->GetNSView()==[GetNSViewForSuperview() superview]) + CocoaRemoveFromParent(); delete m_cocoaHider; delete m_cocoaScroller; SetNSView(NULL); @@ -411,17 +414,27 @@ bool wxWindowCocoa::Cocoa_mouseUp(WX_NSEvent theEvent) bool wxWindowCocoa::Cocoa_rightMouseDown(WX_NSEvent theEvent) { - return false; + wxMouseEvent event([theEvent clickCount]<2?wxEVT_RIGHT_DOWN:wxEVT_RIGHT_DCLICK); + InitMouseEvent(event,theEvent); + wxLogDebug(wxT("Mouse Down @%d,%d num clicks=%d"),event.m_x,event.m_y,[theEvent clickCount]); + return GetEventHandler()->ProcessEvent(event); } bool wxWindowCocoa::Cocoa_rightMouseDragged(WX_NSEvent theEvent) { - return false; + wxMouseEvent event(wxEVT_MOTION); + InitMouseEvent(event,theEvent); + event.m_rightDown = true; + wxLogDebug(wxT("Mouse Drag @%d,%d"),event.m_x,event.m_y); + return GetEventHandler()->ProcessEvent(event); } bool wxWindowCocoa::Cocoa_rightMouseUp(WX_NSEvent theEvent) { - return false; + wxMouseEvent event(wxEVT_RIGHT_UP); + InitMouseEvent(event,theEvent); + wxLogDebug(wxT("Mouse Up @%d,%d"),event.m_x,event.m_y); + return GetEventHandler()->ProcessEvent(event); } bool wxWindowCocoa::Cocoa_otherMouseDown(WX_NSEvent theEvent)