]> git.saurik.com Git - wxWidgets.git/blobdiff - src/motif/dcclient.cpp
Bugfix in GSocket_Cleanup()
[wxWidgets.git] / src / motif / dcclient.cpp
index 7e2c71d1c880c480811461ad9c919cf5e088a4ae..bda0770424270cf3170a99f478689707a1b331a6 100644 (file)
@@ -127,6 +127,7 @@ wxWindowDC::wxWindowDC( wxWindow *window )
     wxASSERT_MSG( (window != (wxWindow*) NULL), "You must pass a valid wxWindow to wxWindowDC/wxClientDC/wxPaintDC constructor." );
 
     m_window = window;
+    m_font = window->GetFont();
     m_gc = (WXGC) 0;
     m_gcBacking = (WXGC) 0;
     m_backgroundPixel = -1;
@@ -1180,8 +1181,8 @@ void wxWindowDC::GetTextExtent( const wxString &string, long *width, long *heigh
         // TODO: this should be an error log function
         wxFAIL_MSG("set a valid font before calling GetTextExtent!");
 
-        *width = -1;
-        *height = -1;
+        if (width) *width = -1;
+        if (height) *height = -1;
         return;
     }
 
@@ -1207,8 +1208,8 @@ void wxWindowDC::GetTextExtent( const wxString &string, long *width, long *heigh
         XTextExtents((XFontStruct*) pFontStruct, (char*) (const char*) string, slen, &direction,
         &ascent, &descent2, &overall);
 
-    *width = XDEV2LOGREL (overall.width);
-    *height = YDEV2LOGREL (ascent + descent2);
+    if (width) *width = XDEV2LOGREL (overall.width);
+    if (height) *height = YDEV2LOGREL (ascent + descent2);
     if (descent)
         *descent = descent2;
     if (externalLeading)
@@ -1992,7 +1993,7 @@ void wxWindowDC::SetDCClipping()
 
 void wxWindowDC::DoSetClippingRegion( long x, long y, long width, long height )
 {
-    wxDC::SetClippingRegion( x, y, width, height );
+    wxDC::DoSetClippingRegion( x, y, width, height );
 
     if (m_userRegion)
         XDestroyRegion ((Region) m_userRegion);
@@ -2023,7 +2024,7 @@ void wxWindowDC::DoSetClippingRegionAsRegion( const wxRegion& region )
 {
     wxRect box = region.GetBox();
 
-    wxDC::SetClippingRegion( box.x, box.y, box.width, box.height );
+    wxDC::DoSetClippingRegion( box.x, box.y, box.width, box.height );
 
     if (m_userRegion)
         XDestroyRegion ((Region) m_userRegion);