int dh = 0;
if (m_hasScrolling)
- {
GetScrollbarWidth(m_widget, dw, dh);
- }
#ifndef __WXUNIVERSAL__
if (HasFlag(wxRAISED_BORDER) || HasFlag(wxSUNKEN_BORDER))
// Clip to paint region in wxClientDC
m_clipPaintRegion = true;
-#if 0
+ m_nativeUpdateRegion = m_updateRegion;
+
if (GetLayoutDirection() == wxLayout_RightToLeft)
{
- maybe_rtl_region.Clear();
+ // Transform m_updateRegion under RTL
+ m_updateRegion.Clear();
gint width;
gdk_window_get_geometry( GTK_PIZZA(m_wxwindow)->bin_window,
NULL, NULL, &width, NULL, NULL );
- wxRegionIterator upd( m_updateRegion );
+ wxRegionIterator upd( m_nativeUpdateRegion );
while (upd)
{
wxRect rect;
rect.height = upd.GetHeight();
rect.x = width - rect.x - rect.width;
- maybe_rtl_region.Union( rect );
+ m_updateRegion.Union( rect );
++upd;
}
}
-#endif
// widget to draw on
GtkPizza *pizza = GTK_PIZZA (m_wxwindow);
if (GTK_WIDGET_MAPPED(parent->m_widget))
{
- wxRegionIterator upd( m_updateRegion );
+ wxRegionIterator upd( m_nativeUpdateRegion );
while (upd)
{
GdkRectangle rect;
m_clipPaintRegion = false;
m_updateRegion.Clear();
+ m_nativeUpdateRegion.Clear();
}
void wxWindowGTK::SetDoubleBuffered( bool on )
gtk_widget_set_double_buffered( m_wxwindow, on );
}
+bool wxWindowGTK::IsDoubleBuffered() const
+{
+ return GTK_WIDGET_DOUBLE_BUFFERED( m_wxwindow );
+}
+
void wxWindowGTK::ClearBackground()
{
wxCHECK_RET( m_widget != NULL, wxT("invalid window") );