]> git.saurik.com Git - wxWidgets.git/blobdiff - src/cocoa/window.mm
corrected Refresh (client coordinates)
[wxWidgets.git] / src / cocoa / window.mm
index 28ea18d0ead587cd1e76b0bca263af9680f07e3b..91e48b8579dc1ef5fea0cad49850e7ae863b1f64 100644 (file)
@@ -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;
 }
@@ -304,6 +304,10 @@ void wxWindowCocoa::CocoaRemoveFromParent(void)
 
 void wxWindowCocoa::SetNSView(WX_NSView cocoaNSView)
 {
+    // Assume setting the NSView to NULL means this wxWindow is being destroyed
+    if(m_cocoaNSView && !cocoaNSView)
+        SendDestroyEvent();
+
     bool need_debug = cocoaNSView || m_cocoaNSView;
     if(need_debug) wxLogTrace(wxTRACE_COCOA_RetainRelease,wxT("wxWindowCocoa=%p::SetNSView [m_cocoaNSView=%p retainCount]=%d"),this,m_cocoaNSView,[m_cocoaNSView retainCount]);
     DisassociateNSView(m_cocoaNSView);
@@ -414,17 +418,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)