]> git.saurik.com Git - wxWidgets.git/blobdiff - src/motif/dcclient.cpp
set m_closed to true when we get connection lost notification
[wxWidgets.git] / src / motif / dcclient.cpp
index 375f968e9556fa98093b1976b844ef993f395e84..a04811cc5c5f508e634a6be89fd2b3724a9e314a 100644 (file)
@@ -46,6 +46,7 @@
     #include "wx/dcmemory.h"
     #include "wx/math.h"
     #include "wx/image.h"
+    #include "wx/dcclient.h"
 #endif
 
 #ifdef __VMS__
@@ -236,7 +237,7 @@ bool wxWindowDCImpl::DoGetPixel( wxCoord x1, wxCoord y1, wxColour *col ) const
     wxMemoryDC memdc;
     wxBitmap bitmap(1, 1);
     memdc.SelectObject(bitmap);
-    memdc.Blit(0, 0, 1, 1, (wxDC*) this, x1, y1);
+    memdc.Blit(0, 0, 1, 1, GetOwner(), x1, y1);
     memdc.SelectObject(wxNullBitmap);
     wxImage image = bitmap.ConvertToImage();
     col->Set(image.GetRed(0, 0), image.GetGreen(0, 0), image.GetBlue(0, 0));
@@ -1735,7 +1736,9 @@ void wxWindowDCImpl::SetPen( const wxPen &pen )
             pixel = m_backgroundPixel;
         else
         {
-            pixel = CalculatePixel(m_pen.GetColour(), m_currentColour, false);
+            wxColour penClr = m_pen.GetColour();
+            pixel = CalculatePixel( penClr, m_currentColour, false);
+            m_pen.SetColour(penClr);
         }
 
         // Finally, set the GC to the required colour
@@ -1897,7 +1900,9 @@ void wxWindowDCImpl::SetBrush( const wxBrush &brush )
     // must test m_logicalFunction, because it involves background!
     if (!sameColour || !GET_OPTIMIZATION || m_logicalFunction == wxXOR)
     {
-        WXPixel pixel = CalculatePixel(m_brush.GetColour(), m_currentColour, true);
+        wxColour brushClr = m_brush.GetColour();
+        WXPixel pixel = CalculatePixel( brushClr, m_currentColour, true);
+        m_brush.SetColour(brushClr);
 
         if (pixel > -1)
             SetForegroundPixelWithLogicalFunction(pixel);
@@ -2098,7 +2103,7 @@ void wxWindowDCImpl::DoSetClippingRegion( wxCoord x, wxCoord y,
     }
 }
 
-void wxWindowDCImpl::DoSetClippingRegionAsRegion( const wxRegion& region )
+void wxWindowDCImpl::DoSetDeviceClippingRegion( const wxRegion& region )
 {
     SetDCClipping(region.GetX11Region());
 
@@ -2109,10 +2114,10 @@ void wxWindowDCImpl::DoSetClippingRegionAsRegion( const wxRegion& region )
         wxRect box = region.GetBox();
 
         XRectangle rects[1];
-        rects[0].x = (short)XLOG2DEV_2(box.x);
-        rects[0].y = (short)YLOG2DEV_2(box.y);
-        rects[0].width = (unsigned short)XLOG2DEVREL(box.width);
-        rects[0].height = (unsigned short)YLOG2DEVREL(box.height);
+        rects[0].x = (short)box.x;
+        rects[0].y = (short)box.y;
+        rects[0].width = (unsigned short)box.width;
+        rects[0].height = (unsigned short)box.height;
         XSetClipRectangles((Display*) m_display, (GC) m_gcBacking,
                            0, 0, rects, 1, Unsorted);
     }