X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3e0071d949c302b17d6459de98c5cf42600d96fe..b39fc8d7b1b853cb15f39d51617214b7b90a8872:/src/motif/dcclient.cpp?ds=inline diff --git a/src/motif/dcclient.cpp b/src/motif/dcclient.cpp index 285e7622d7..1a3ec55e8d 100644 --- a/src/motif/dcclient.cpp +++ b/src/motif/dcclient.cpp @@ -88,11 +88,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxClientDC, wxWindowDC) IMPLEMENT_DYNAMIC_CLASS(wxPaintDC, wxWindowDC) IMPLEMENT_DYNAMIC_CLASS(wxWindowDC, wxDC) -#ifndef IS_HATCH - // IS_HATCH exists for WXWIN_COMPATIBILITY_2_4 only - // but wxMotif needs it for its internals here - #define IS_HATCH(s) ((s)>=wxFIRST_HATCH && (s)<=wxLAST_HATCH) -#endif +#define IS_HATCH(s) ((s)>=wxFIRST_HATCH && (s)<=wxLAST_HATCH) // FIXME: left over after removal of wxDC::GetOptimization() #define GET_OPTIMIZATION false @@ -1130,11 +1126,11 @@ void wxWindowDC::DoDrawText( const wxString &text, wxCoord x, wxCoord y ) #if wxMOTIF_NEW_FONT_HANDLING XmbDrawString((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(), fset, (GC) m_gcBacking, XLOG2DEV_2 (x), YLOG2DEV_2 (y) + ascent, - wxConstCast(text.c_str(), char), slen); + wxConstCast(text.mb_str(), char), slen); #else XDrawString((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(), (GC) m_gcBacking, XLOG2DEV_2 (x), YLOG2DEV_2 (y) + ascent, - wxConstCast(text.c_str(), char), slen); + wxConstCast(text.mb_str(), char), slen); #endif } @@ -1690,7 +1686,7 @@ void wxWindowDC::SetPen( const wxPen &pen ) XSetStipple ((Display*) m_display,(GC) m_gcBacking, myStipple); } else if (m_currentStipple.Ok() - && ((m_currentStipple != oldStipple) || !GET_OPTIMIZATION)) + && ((!m_currentStipple.IsSameAs(oldStipple)) || !GET_OPTIMIZATION)) { XSetStipple ((Display*) m_display, (GC) m_gc, (Pixmap) m_currentStipple.GetDrawable()); @@ -2066,7 +2062,8 @@ void wxWindowDC::DoSetClippingRegion( wxCoord x, wxCoord y, { wxDC::DoSetClippingRegion( x, y, width, height ); - wxRegion temp(x, y, width, height); + wxRegion temp(XLOG2DEV(x), YLOG2DEV(y), + XLOG2DEVREL(width), YLOG2DEVREL(height)); SetDCClipping(temp.GetX11Region()); @@ -2086,16 +2083,14 @@ void wxWindowDC::DoSetClippingRegion( wxCoord x, wxCoord y, void wxWindowDC::DoSetClippingRegionAsRegion( const wxRegion& region ) { - wxRect box = region.GetBox(); - - wxDC::DoSetClippingRegion( box.x, box.y, box.width, box.height ); - SetDCClipping(region.GetX11Region()); // Needs to work differently for Pixmap: without this, // there's a nasty (Display*) m_display bug. 8/12/94 if (m_window && m_window->GetBackingPixmap()) { + wxRect box = region.GetBox(); + XRectangle rects[1]; rects[0].x = (short)XLOG2DEV_2(box.x); rects[0].y = (short)YLOG2DEV_2(box.y); @@ -2224,7 +2219,7 @@ install: XPutImage(dest_display, dest, destgc, destimage, 0, 0, destx, desty, w, h); XDestroyImage(destimage); - if (more) + if (more && cache) *cache = image; else XDestroyImage(image);