libgimpwidgets: Separate ruler text layer from background.

Also fix failing to clear backing_store at the same time.
This commit is contained in:
Michael Henning 2015-09-28 22:42:46 -04:00 committed by Michael Natterer
parent 69497c84a6
commit 2ef224237e
1 changed files with 12 additions and 5 deletions
libgimpwidgets

View File

@ -983,8 +983,14 @@ static gboolean
gimp_ruler_draw (GtkWidget *widget,
cairo_t *cr)
{
GimpRuler *ruler = GIMP_RULER (widget);
GimpRulerPrivate *priv = GIMP_RULER_GET_PRIVATE (ruler);
GimpRuler *ruler = GIMP_RULER (widget);
GimpRulerPrivate *priv = GIMP_RULER_GET_PRIVATE (ruler);
GtkStyleContext *context = gtk_widget_get_style_context (widget);
GtkAllocation allocation;
gtk_widget_get_allocation (widget, &allocation);
gtk_render_background (context, cr, 0, 0, allocation.width, allocation.height);
gtk_render_frame (context, cr, 0, 0, allocation.width, allocation.height);
if (! priv->backing_store_valid)
gimp_ruler_draw_ticks (ruler);
@ -1050,8 +1056,9 @@ gimp_ruler_draw_ticks (GimpRuler *ruler)
cr = cairo_create (priv->backing_store);
gtk_render_background (context, cr, 0, 0, allocation.width, allocation.height);
gtk_render_frame (context, cr, 0, 0, allocation.width, allocation.height);
cairo_set_operator (cr, CAIRO_OPERATOR_CLEAR);
cairo_paint (cr);
cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
gtk_style_context_get_color (context, gtk_widget_get_state_flags (widget),
&color);
@ -1375,7 +1382,7 @@ gimp_ruler_make_pixmap (GimpRuler *ruler)
priv->backing_store =
gdk_window_create_similar_surface (gtk_widget_get_window (widget),
CAIRO_CONTENT_COLOR,
CAIRO_CONTENT_COLOR_ALPHA,
allocation.width,
allocation.height);