}
}
-void
-_gtk_button_paint (GtkButton *button,
- cairo_t *cr,
- int width,
- int height,
- GtkStateFlags state)
+static gboolean
+gtk_button_draw (GtkWidget *widget,
+ cairo_t *cr)
{
+ GtkButton *button = GTK_BUTTON (widget);
GtkButtonPrivate *priv = button->priv;
- GtkWidget *widget;
gint x, y;
GtkBorder default_border;
GtkBorder default_outside_border;
gint focus_pad;
GtkAllocation allocation;
GtkStyleContext *context;
+ GtkStateFlags state;
gboolean draw_focus;
+ gint width, height;
- widget = GTK_WIDGET (button);
context = gtk_widget_get_style_context (widget);
-
- gtk_style_context_save (context);
- gtk_style_context_set_state (context, state);
+ state = gtk_style_context_get_state (context);
gtk_button_get_props (button, &default_border, &default_outside_border, NULL, NULL, &interior_focus);
gtk_style_context_get_style (context,
x = 0;
y = 0;
+ width = allocation.width;
+ height = allocation.height;
if (gtk_widget_has_default (widget) &&
priv->relief == GTK_RELIEF_NORMAL)
gtk_render_focus (context, cr, x, y, width, height);
}
- gtk_style_context_restore (context);
-}
-
-static gboolean
-gtk_button_draw (GtkWidget *widget,
- cairo_t *cr)
-{
- GtkButton *button = GTK_BUTTON (widget);
-
- _gtk_button_paint (button, cr,
- gtk_widget_get_allocated_width (widget),
- gtk_widget_get_allocated_height (widget),
- gtk_widget_get_state_flags (widget));
-
GTK_WIDGET_CLASS (gtk_button_parent_class)->draw (widget, cr);
return FALSE;