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

Caolán McNamara caolanm at redhat.com
Wed Mar 4 08:59:29 PST 2015


 vcl/inc/unx/gtk/gtkgdi.hxx                    |    2 +-
 vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx |   18 +++++-------------
 2 files changed, 6 insertions(+), 14 deletions(-)

New commits:
commit 2567d8040d060525a1125a36e4e3704421833787
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Mar 4 16:57:07 2015 +0000

    drop temp surface and draw direct to backing basebmp surface
    
    Change-Id: I370a0f635bea17729539e8b6da4c3f1d195ad43b

diff --git a/vcl/inc/unx/gtk/gtkgdi.hxx b/vcl/inc/unx/gtk/gtkgdi.hxx
index 66aa0e0..28e3f7b 100644
--- a/vcl/inc/unx/gtk/gtkgdi.hxx
+++ b/vcl/inc/unx/gtk/gtkgdi.hxx
@@ -78,7 +78,7 @@ private:
     static GtkStyleContext *mpComboboxStyle;
     static GtkStyleContext *mpListboxStyle;
 
-    void renderAreaToPix( cairo_surface_t* source, cairo_rectangle_int_t *region );
+    void queue_draw_area(cairo_rectangle_int_t *region);
     void getStyleContext( GtkStyleContext** style, GtkWidget* widget );
     Rectangle NWGetScrollButtonRect( ControlPart nPart, Rectangle aAreaRect );
     Rectangle NWGetSpinButtonRect( ControlPart nPart, Rectangle aAreaRect);
diff --git a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
index 7c0f245..c54657b 100644
--- a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
@@ -912,9 +912,9 @@ bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart, co
 
     cairo_rectangle_int_t translatedRegion = { (int) rControlRegion.Left() - 1, (int) rControlRegion.Top() - 1,
                                                (int) rControlRegion.GetWidth() + 2, (int) rControlRegion.GetHeight() + 2 };
-    cairo_surface_t* surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
-                                                          translatedRegion.width, translatedRegion.height);
-    cairo_t *cr = cairo_create(surface);
+
+    cairo_t *cr = getCairoContext();
+    cairo_translate(cr, translatedRegion.x, translatedRegion.y);
 
     gtk_style_context_save(context);
     gtk_style_context_set_state(context, flags);
@@ -963,21 +963,13 @@ bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart, co
     }
 
     cairo_destroy(cr); // unref
-    renderAreaToPix(surface, &translatedRegion);
-    cairo_surface_destroy(surface); // unref
+    queue_draw_area(&translatedRegion);
 
     return true;
 }
 
-void GtkSalGraphics::renderAreaToPix( cairo_surface_t *source,
-                                      cairo_rectangle_int_t *region)
+void GtkSalGraphics::queue_draw_area(cairo_rectangle_int_t *region)
 {
-    cairo_t *cr = getCairoContext();
-    cairo_set_source_surface(cr, source, region->x, region->y);
-    cairo_rectangle(cr, region->x, region->y, region->width, region->height);
-    cairo_fill(cr);
-    cairo_destroy(cr);
-
     if (!mpFrame->isDuringRender())
         gtk_widget_queue_draw_area(mpFrame->getWindow(), region->x, region->y, region->width, region->height);
 }


More information about the Libreoffice-commits mailing list