vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-)
New commits: commit c8ecf7eb128e7de0ec541f430f484ed50376ade5 Author: Stephan Bergmann <sberg...@redhat.com> Date: Wed Jun 12 18:20:46 2013 +0200 Atempt at making --enable-gtk3 build again ...post e717d1dcce7f8906311c5ccdbb2326b61a702630 "Resolves: #i121237# Rework/Cleanup of Region code..." Note that GktSalGraphics variant for GTK 3 (there is two declarations in vcl/inc/unx/gtk/gtkgdi.hxx) inherits m_aClipRegion from SvpSalGraphics. Change-Id: Ic264226bc406f67f20d1893455d85ad0d1bc17ed diff --git a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx index cc33f01..3448615 100644 --- a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx +++ b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx @@ -1450,8 +1450,7 @@ void GtkSalGraphics::getStyleContext(GtkStyleContext** style, GtkWidget* widget) GtkSalGraphics::GtkSalGraphics( GtkSalFrame *pFrame, GtkWidget *pWindow ) : SvpSalGraphics(), mpFrame( pFrame ), - mpWindow( pWindow ), - m_aClipRegion(true) + mpWindow( pWindow ) { if(style_loaded) return; @@ -1575,7 +1574,9 @@ void GtkSalGraphics::copyArea( long nDestX, long nDestY, // get clip region and translate it in the opposite direction & intersect ... cairo_region_t *clip_region; - if( m_aClipRegion.GetRectCount() <= 0) + RectangleVector rects; + m_aClipRegion.GetRegionRectangles(rects); + if (rects.empty()) { basegfx::B2IVector aSize = GetSize(); cairo_rectangle_int_t aCairoSize = { 0, 0, aSize.getX(), aSize.getY() }; @@ -1584,15 +1585,12 @@ void GtkSalGraphics::copyArea( long nDestX, long nDestY, else { clip_region = cairo_region_create(); - Rectangle aClipRect; - RegionHandle aHnd = m_aClipRegion.BeginEnumRects(); - while( m_aClipRegion.GetNextEnumRect( aHnd, aClipRect ) ) + for (RectangleVector::iterator i(rects.begin()); i != rects.end(); ++i) { - cairo_rectangle_int_t aRect = { (int)aClipRect.Left(), (int)aClipRect.Top(), - (int)aClipRect.GetWidth(), (int)aClipRect.GetHeight() }; + cairo_rectangle_int_t aRect = { (int)i->Left(), (int)i->Top(), + (int)i->GetWidth(), (int)i->GetHeight() }; cairo_region_union_rectangle( clip_region, &aRect ); } - m_aClipRegion.EndEnumRects (aHnd); } print_cairo_region( clip_region, "pristine clip region" ); cairo_region_translate( clip_region, - (nDestX - nSrcX), - (nDestY - nSrcY) ); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits