[Libreoffice-commits] core.git: 4 commits - vcl/unx

Caolán McNamara caolanm at redhat.com
Wed Mar 4 07:01:30 PST 2015


 vcl/unx/gtk/window/gtksalframe.cxx            |   45 +++-----------------------
 vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx |    6 +++
 2 files changed, 12 insertions(+), 39 deletions(-)

New commits:
commit 5a009a4387a84a36d2e3418c7e7b097cb10c3f5a
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Mar 4 14:59:41 2015 +0000

    consistent use of [pop|push]IgnoreDamage
    
    Change-Id: I9a1fccc2cb9f2cd2f336218cf336c358c1a87af1

diff --git a/vcl/unx/gtk/window/gtksalframe.cxx b/vcl/unx/gtk/window/gtksalframe.cxx
index 83526a1..df53136 100644
--- a/vcl/unx/gtk/window/gtksalframe.cxx
+++ b/vcl/unx/gtk/window/gtksalframe.cxx
@@ -3444,7 +3444,7 @@ gboolean GtkSalFrame::signalDraw( GtkWidget*, cairo_t *cr, gpointer frame )
 
     // FIXME: we quite probably want to stop re-rendering of pieces
     // that we know are just damaged by us and hence already re-rendered
-    pThis->m_nDuringRender++;
+    pThis->pushIgnoreDamage();
 
     // FIXME: we need to profile whether re-rendering the entire
     // clip region, and just pushing (with renderArea) smaller pieces
@@ -3460,7 +3460,7 @@ gboolean GtkSalFrame::signalDraw( GtkWidget*, cairo_t *cr, gpointer frame )
         pThis->renderArea( cr, &rect );
     }
 
-    pThis->m_nDuringRender--;
+    pThis->popIgnoreDamage();
 
     cairo_surface_flush(cairo_get_target(cr));
 
commit 19af4b899eb51631a1b16e53cd32adf697a10284
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Mar 4 14:28:44 2015 +0000

    update comment
    
    Change-Id: I0f1579be12de198dfbc90c7c78c14979d120302d

diff --git a/vcl/unx/gtk/window/gtksalframe.cxx b/vcl/unx/gtk/window/gtksalframe.cxx
index 937b058..83526a1 100644
--- a/vcl/unx/gtk/window/gtksalframe.cxx
+++ b/vcl/unx/gtk/window/gtksalframe.cxx
@@ -3401,9 +3401,7 @@ void GtkSalFrame::damaged (const basegfx::B2IBox& rDamageRect)
 }
 
 #if GTK_CHECK_VERSION(3,0,0)
-// FIXME: This is incredibly lame ... but so is cairo's insistence on -exactly-
-// its own stride - neither more nor less - particularly not more aligned
-// we like 8byte aligned, it likes 4 - most odd.
+// blit our backing basebmp buffer to the target cairo context cr
 void GtkSalFrame::renderArea( cairo_t *cr, cairo_rectangle_t *area )
 {
     cairo_save( cr );
commit a1778a4b4551102d6319a77238196a6822b84187
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Mar 4 14:27:05 2015 +0000

    seeing as we're using cairo-calls now we shouldn't need manual bounds checking
    
    Change-Id: Id0b91600e69819bc158bda6c51d35169936299d0

diff --git a/vcl/unx/gtk/window/gtksalframe.cxx b/vcl/unx/gtk/window/gtksalframe.cxx
index 93cfdbb..937b058 100644
--- a/vcl/unx/gtk/window/gtksalframe.cxx
+++ b/vcl/unx/gtk/window/gtksalframe.cxx
@@ -3406,45 +3406,14 @@ void GtkSalFrame::damaged (const basegfx::B2IBox& rDamageRect)
 // we like 8byte aligned, it likes 4 - most odd.
 void GtkSalFrame::renderArea( cairo_t *cr, cairo_rectangle_t *area )
 {
-    if( !m_aFrame.get() )
-        return;
-
-    basebmp::RawMemorySharedArray data = m_aFrame->getBuffer();
-    basegfx::B2IVector size = m_aFrame->getSize();
-
-    long ax = area->x;
-    long ay = area->y;
-    long awidth = area->width;
-    long aheight = area->height;
-
-    // Sanity check bounds - we get some odd things here.
-    if( ax >= size.getX() )
-        ax = size.getX() - 1;
-    if( ay >= size.getY() )
-        ay = size.getY() - 1;
-    if( ax < 0 )
-    {
-        ax = 0;
-        awidth += ax;
-    }
-    if( ay < 0 )
-    {
-        ay = 0;
-        aheight += ay;
-    }
-    if( ax + awidth > size.getX() )
-        awidth = size.getX() - ax;
-    if( ay + aheight > size.getY() )
-        aheight = size.getY() - ay;
-
     cairo_save( cr );
 
     cairo_surface_t *pSurface = cairo_get_target(getCairoContext());
-
     cairo_set_operator( cr, CAIRO_OPERATOR_OVER );
     cairo_set_source_surface( cr, pSurface, 0, 0 );
-    cairo_rectangle( cr, ax, ay, awidth, aheight );
+    cairo_rectangle( cr, area->x, area->y, area->width, area->height );
     cairo_fill( cr );
+
     cairo_restore( cr );
 
     // Render red rectangles to show what was re-rendered ...
@@ -3453,7 +3422,7 @@ void GtkSalFrame::renderArea( cairo_t *cr, cairo_rectangle_t *area )
         cairo_save( cr );
         cairo_set_line_width( cr, 1.0 );
         cairo_set_source_rgb( cr, 1.0, 0, 0 );
-        cairo_rectangle( cr, ax + 1.0, ay + 1.0, awidth - 2.0, aheight - 2.0 );
+        cairo_rectangle( cr, area->x + 1.0, area->y + 1.0, area->width - 2.0, area->height - 2.0 );
         cairo_stroke( cr );
         cairo_restore( cr );
     }
commit 8a21cb8a80a1edf36644b4fd3be3220f3df48021
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Mar 4 14:16:51 2015 +0000

    silence some more spew
    
    Change-Id: Icfab4fc0208de28783ca50328321f3c65600bd9d

diff --git a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
index 1f4f3a8..8ca34ad 100644
--- a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
@@ -1300,12 +1300,18 @@ void GtkSalGraphics::updateSettings( AllSettings& rSettings )
     }
     aInfo.m_eWidth = WIDTH_ULTRA_CONDENSED;
 
+#if OSL_DEBUG_LEVEL > 1
     fprintf( stderr, "font name BEFORE system match: \"%s\"\n", aFamily.getStr() );
+#endif
+
     // match font to e.g. resolve "Sans"
     psp::PrintFontManager::get().matchFont( aInfo, rSettings.GetUILanguageTag().getLocale() );
+
+#if OSL_DEBUG_LEVEL > 1
     fprintf( stderr, "font match %s, name AFTER: \"%s\"\n",
                   aInfo.m_nID != 0 ? "succeeded" : "failed",
                   OUStringToOString( aInfo.m_aFamilyName, RTL_TEXTENCODING_ISO_8859_1 ).getStr() );
+#endif
 
     int nPointHeight = 0;
     /*sal_Int32 nDispDPIY = GetDisplay()->GetResolution().B();


More information about the Libreoffice-commits mailing list