Commit 9aab40b8 authored by Martin Stransky's avatar Martin Stransky Committed by Benjamin Otte

stylecontext: Clear paths in gtk_render_foo()

This ensures that existing paths are properly cleared and don't cause
spurious renderings.

https://bugzilla.gnome.org/show_bug.cgi?id=694086
parent bad6075e
......@@ -3801,6 +3801,7 @@ gtk_render_check (GtkStyleContext *context,
engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
cairo_new_path (cr);
_gtk_theming_engine_set_context (engine, context);
......@@ -3851,6 +3852,7 @@ gtk_render_option (GtkStyleContext *context,
engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
cairo_new_path (cr);
_gtk_theming_engine_set_context (engine, context);
engine_class->render_option (engine, cr,
......@@ -3898,6 +3900,7 @@ gtk_render_arrow (GtkStyleContext *context,
engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
cairo_new_path (cr);
gtk_style_context_save (context);
gtk_style_context_add_class (context, GTK_STYLE_CLASS_ARROW);
......@@ -3952,6 +3955,7 @@ gtk_render_background (GtkStyleContext *context,
engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
cairo_new_path (cr);
_gtk_theming_engine_set_context (engine, context);
engine_class->render_background (engine, cr, x, y, width, height);
......@@ -4003,6 +4007,7 @@ gtk_render_frame (GtkStyleContext *context,
engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
cairo_new_path (cr);
_gtk_theming_engine_set_context (engine, context);
engine_class->render_frame (engine, cr, x, y, width, height);
......@@ -4051,6 +4056,7 @@ gtk_render_expander (GtkStyleContext *context,
engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
cairo_new_path (cr);
_gtk_theming_engine_set_context (engine, context);
engine_class->render_expander (engine, cr, x, y, width, height);
......@@ -4096,6 +4102,7 @@ gtk_render_focus (GtkStyleContext *context,
engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
cairo_new_path (cr);
_gtk_theming_engine_set_context (engine, context);
engine_class->render_focus (engine, cr, x, y, width, height);
......@@ -4134,6 +4141,7 @@ gtk_render_layout (GtkStyleContext *context,
engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
cairo_new_path (cr);
pango_layout_get_extents (layout, &extents, NULL);
......@@ -4174,6 +4182,7 @@ gtk_render_line (GtkStyleContext *context,
engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
cairo_new_path (cr);
_gtk_theming_engine_set_context (engine, context);
engine_class->render_line (engine, cr, x0, y0, x1, y1);
......@@ -4224,6 +4233,7 @@ gtk_render_slider (GtkStyleContext *context,
engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
cairo_new_path (cr);
_gtk_theming_engine_set_context (engine, context);
engine_class->render_slider (engine, cr, x, y, width, height, orientation);
......@@ -4287,6 +4297,7 @@ gtk_render_frame_gap (GtkStyleContext *context,
engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
cairo_new_path (cr);
_gtk_theming_engine_set_context (engine, context);
engine_class->render_frame_gap (engine, cr,
......@@ -4339,6 +4350,7 @@ gtk_render_extension (GtkStyleContext *context,
engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
cairo_new_path (cr);
_gtk_theming_engine_set_context (engine, context);
engine_class->render_extension (engine, cr, x, y, width, height, gap_side);
......@@ -4387,6 +4399,7 @@ gtk_render_handle (GtkStyleContext *context,
engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
cairo_new_path (cr);
_gtk_theming_engine_set_context (engine, context);
engine_class->render_handle (engine, cr, x, y, width, height);
......@@ -4430,6 +4443,7 @@ gtk_render_activity (GtkStyleContext *context,
engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
cairo_new_path (cr);
_gtk_theming_engine_set_context (engine, context);
engine_class->render_activity (engine, cr, x, y, width, height);
......@@ -4501,6 +4515,7 @@ gtk_render_icon (GtkStyleContext *context,
engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
cairo_new_path (cr);
_gtk_theming_engine_set_context (engine, context);
engine_class->render_icon (engine, cr, pixbuf, x, y);
......@@ -4537,6 +4552,7 @@ gtk_render_icon_surface (GtkStyleContext *context,
engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
cairo_new_path (cr);
_gtk_theming_engine_set_context (engine, context);
engine_class->render_icon_surface (engine, cr, surface, x, y);
......@@ -4562,6 +4578,7 @@ draw_insertion_cursor (GtkStyleContext *context,
gint offset;
cairo_save (cr);
cairo_new_path (cr);
_gtk_style_context_get_cursor_color (context, &primary_color, &secondary_color);
gdk_cairo_set_source_rgba (cr, is_primary ? &primary_color : &secondary_color);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment