]> git.saurik.com Git - wxWidgets.git/blobdiff - src/cocoa/dcmemory.mm
Calculate correct client size for windows that are using deferred sizing.
[wxWidgets.git] / src / cocoa / dcmemory.mm
index ff5882d9955c878cadb36957a92011cf40c6cf4a..0f2f04c365e862307df8a0f9e2c9396cc0b6fc1b 100644 (file)
@@ -53,8 +53,10 @@ bool wxMemoryDC::CocoaLockFocus()
     {
         [m_cocoaNSImage lockFocus];
         sm_cocoaDCStack.Insert(this);
-        m_cocoaFlipped = [m_cocoaNSImage isFlipped];
-        m_cocoaHeight = [m_cocoaNSImage size].height;
+        NSAffineTransform *newTransform = CocoaGetWxToBoundsTransform([m_cocoaNSImage isFlipped], [m_cocoaNSImage size].height);
+        [newTransform retain];
+        [m_cocoaWxToBoundsTransform release];
+        m_cocoaWxToBoundsTransform = newTransform;
         CocoaApplyTransformations();
         return true;
     }
@@ -152,20 +154,16 @@ bool wxMemoryDC::CocoaDoBlitOnFocusedDC(wxCoord xdest, wxCoord ydest,
     return false;
 }
 
-void wxMemoryDC::Clear()
+bool wxMemoryDC::CocoaGetBounds(void *rectData)
 {
-    if(!CocoaTakeFocus()) return;
-
-    NSGraphicsContext *context = [NSGraphicsContext currentContext];
-    [context saveGraphicsState];
-
-    [m_backgroundBrush.GetNSColor() set];
-    NSRect rect;
-    rect.origin.x = 0;
-    rect.origin.y = 0;
-    rect.size = [m_cocoaNSImage size];
-    [NSBezierPath fillRect:rect];
-
-    [context restoreGraphicsState];
+    if(!rectData)
+        return false;
+    if(!m_cocoaNSImage)
+        return false;
+    NSRect *pRect = (NSRect*)rectData;
+    pRect->origin.x = 0.0;
+    pRect->origin.y = 0.0;
+    pRect->size = [m_cocoaNSImage size];
+    return true;
 }