summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2015-03-04 16:57:07 +0000
committerCaolán McNamara <caolanm@redhat.com>2015-03-04 16:57:59 +0000
commit2567d8040d060525a1125a36e4e3704421833787 (patch)
treeda6d0c42e98519b13ab28d5856fcfd5cf7be2407 /vcl
parent563bfd69ba451b4db69de353c7c876483094a743 (diff)
drop temp surface and draw direct to backing basebmp surface
Change-Id: I370a0f635bea17729539e8b6da4c3f1d195ad43b
Diffstat (limited to 'vcl')
-rw-r--r--vcl/inc/unx/gtk/gtkgdi.hxx2
-rw-r--r--vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx18
2 files changed, 6 insertions, 14 deletions
diff --git a/vcl/inc/unx/gtk/gtkgdi.hxx b/vcl/inc/unx/gtk/gtkgdi.hxx
index 66aa0e0539bf..28e3f7b64d76 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 7c0f24583d88..c54657b19c92 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);
}