- if ((m_brush.GetStyle() != wxTRANSPARENT))
- gdk_draw_polygon (m_window, m_brushGC, TRUE, gdkpoints, n);
+ if ((m_brush.GetStyle() == wxSTIPPLE_MASK_OPAQUE) && (m_brush.GetStipple()->GetMask()))
+ {
+ gdk_gc_set_ts_origin( m_textGC,
+ m_deviceOriginX % m_brush.GetStipple()->GetWidth(),
+ m_deviceOriginY % m_brush.GetStipple()->GetHeight() );
+ gdk_draw_polygon( m_window, m_textGC, TRUE, gdkpoints, n );
+ gdk_gc_set_ts_origin( m_textGC, 0, 0 );
+ } else
+ if (m_brush.GetStyle() == wxSTIPPLE)
+ {
+ gdk_gc_set_ts_origin( m_brushGC,
+ m_deviceOriginX % m_brush.GetStipple()->GetWidth(),
+ m_deviceOriginY % m_brush.GetStipple()->GetHeight() );
+ gdk_draw_polygon( m_window, m_brushGC, TRUE, gdkpoints, n );
+ gdk_gc_set_ts_origin( m_brushGC, 0, 0 );
+ }
+ else
+ {
+ gdk_draw_polygon( m_window, m_brushGC, TRUE, gdkpoints, n );
+ }