]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk1/dcclient.cpp
Fixed toolbar gaffe.
[wxWidgets.git] / src / gtk1 / dcclient.cpp
index 290d654ddf9646c05aeb2f56ddbe7bc9f7467e29..58232ab959d6a0d4cec5ce0d779c5bc060f51fd5 100644 (file)
@@ -115,6 +115,14 @@ wxPaintDC::wxPaintDC( wxWindow *window )
     m_isMemDC = FALSE;
         
     SetUpDC();
+    
+    wxRegion update = window->GetUpdateRegion();
+    if (update == wxNullRegion) return;
+    
+    gdk_gc_set_clip_region( m_penGC, update.GetRegion() );
+    gdk_gc_set_clip_region( m_brushGC, update.GetRegion() );
+    gdk_gc_set_clip_region( m_textGC, update.GetRegion() );
+    gdk_gc_set_clip_region( m_bgGC, update.GetRegion() );
 }
 
 wxPaintDC::~wxPaintDC(void)
@@ -829,6 +837,7 @@ void wxPaintDC::SetBackground( const wxBrush &brush )
   
     m_backgroundBrush.GetColour().CalcPixel( m_cmap );
     gdk_gc_set_background( m_brushGC, m_backgroundBrush.GetColour().GetColor() );
+    gdk_gc_set_background( m_penGC, m_backgroundBrush.GetColour().GetColor() );
     gdk_gc_set_background( m_bgGC, m_backgroundBrush.GetColour().GetColor() );
     gdk_gc_set_foreground( m_bgGC, m_backgroundBrush.GetColour().GetColor() );
   
@@ -949,8 +958,13 @@ void wxPaintDC::SetUpDC(void)
     m_brushGC = gdk_gc_new( m_window );
     m_textGC = gdk_gc_new( m_window );
     m_bgGC = gdk_gc_new( m_window );
-    SetTextForeground( m_textForegroundColour );
-    SetTextBackground( m_textBackgroundColour );
+    
+    wxColour tmp_col( m_textForegroundColour );
+    m_textForegroundColour = wxNullColour;
+    SetTextForeground( tmp_col );
+    tmp_col = m_textBackgroundColour;
+    m_textBackgroundColour = wxNullColour;
+    SetTextBackground( tmp_col );
     
     wxPen tmp_pen( m_pen );
     m_pen = wxNullPen;
@@ -968,8 +982,6 @@ void wxPaintDC::SetUpDC(void)
     m_backgroundBrush = wxNullBrush;
     SetBackground( tmp_brush );
   
-    gdk_gc_set_background( m_penGC, wxWHITE->GetColor() );
-  
     if (!hatch_bitmap) 
     {
         hatch_bitmap    = hatches;