diff --git a/src/gtk/dc.cpp b/src/gtk/dc.cpp index 0c4349834c..917a98acaa 100644 --- a/src/gtk/dc.cpp +++ b/src/gtk/dc.cpp @@ -619,7 +619,7 @@ void wxGTKDCImpl::DoSetClippingRegion( wxCoord x, wxCoord y, wxCoord width, wxCo wxASSERT_MSG( width >= 0 && height >= 0, "Clipping box size values cannot be negative" ); - wxRect newRegion(LogicalToDevice(x, y), LogicalToDeviceRel(width, height)); + wxRect newRegion(x, y, width, height); wxRect clipRegion; if ( m_clipping ) @@ -635,7 +635,8 @@ void wxGTKDCImpl::DoSetClippingRegion( wxCoord x, wxCoord y, wxCoord width, wxCo // of required clipping box and DC surface. int dcWidth, dcHeight; DoGetSize(&dcWidth, &dcHeight); - wxRect dcRect(0, 0, dcWidth, dcHeight); + wxRect dcRect(DeviceToLogicalX(0), DeviceToLogicalY(0), + DeviceToLogicalXRel(dcWidth), DeviceToLogicalYRel(dcHeight)); clipRegion = dcRect.Intersect(newRegion); m_clipping = true; diff --git a/src/gtk/dcclient.cpp b/src/gtk/dcclient.cpp index 7592de0d06..fed357b468 100644 --- a/src/gtk/dcclient.cpp +++ b/src/gtk/dcclient.cpp @@ -1919,10 +1919,10 @@ void wxWindowDCImpl::UpdateClipBox() } else { - m_clipX1 = r.GetLeft(); - m_clipY1 = r.GetTop(); - m_clipX2 = r.GetRight() + 1; - m_clipY2 = r.GetBottom() + 1; + m_clipX1 = DeviceToLogicalX(r.GetLeft()); + m_clipY1 = DeviceToLogicalY(r.GetTop()); + m_clipX2 = m_clipX1 + DeviceToLogicalXRel(r.GetWidth()); + m_clipY2 = m_clipY1 + DeviceToLogicalYRel(r.GetHeight()); } m_isClipBoxValid = true; }