From c1cfd49c4330af003a83d0d703a5ddf06daeccf5 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Tue, 28 May 2013 18:07:06 +0200 Subject: [PATCH] Correct problems with psppire-cell-renderer-button --- src/ui/gui/pspp-widget-facade.c | 4 +--- src/ui/gui/pspp-widget-facade.h | 4 +--- src/ui/gui/psppire-cell-renderer-button.c | 19 +++++++------------ 3 files changed, 9 insertions(+), 18 deletions(-) diff --git a/src/ui/gui/pspp-widget-facade.c b/src/ui/gui/pspp-widget-facade.c index 08f6572110..e5070bff3e 100644 --- a/src/ui/gui/pspp-widget-facade.c +++ b/src/ui/gui/pspp-widget-facade.c @@ -314,9 +314,7 @@ get_layout_location (GtkWidget *base, void facade_button_render (GtkWidget *base, cairo_t *cr, - GdkRectangle *expose_area, - - GdkRectangle *button_area, + const GdkRectangle *button_area, gint border_width, GtkStyle *button_style, GtkStateType state_type, diff --git a/src/ui/gui/pspp-widget-facade.h b/src/ui/gui/pspp-widget-facade.h index 4bbf1540e2..6705185f7f 100644 --- a/src/ui/gui/pspp-widget-facade.h +++ b/src/ui/gui/pspp-widget-facade.h @@ -64,9 +64,7 @@ void facade_button_get_size_request (gint border_width, GtkRequisition *); void facade_button_render (GtkWidget *base, cairo_t *cr, - GdkRectangle *expose_area, - - GdkRectangle *button_area, + const GdkRectangle *button_area, gint border_width, GtkStyle *button_style, GtkStateType state_type, diff --git a/src/ui/gui/psppire-cell-renderer-button.c b/src/ui/gui/psppire-cell-renderer-button.c index c26849deae..5a20ff5a8d 100644 --- a/src/ui/gui/psppire-cell-renderer-button.c +++ b/src/ui/gui/psppire-cell-renderer-button.c @@ -181,17 +181,15 @@ update_style_cache (PsppireCellRendererButton *button, static void psppire_cell_renderer_button_render (GtkCellRenderer *cell, - GdkWindow *window, + cairo_t *cr, GtkWidget *widget, - GdkRectangle *background_area, - GdkRectangle *cell_area, - GdkRectangle *expose_area, + const GdkRectangle *background_area, + const GdkRectangle *cell_area, GtkCellRendererState flags) { GtkStateType state_type; PsppireCellRendererButton *button = PSPPIRE_CELL_RENDERER_BUTTON (cell); gfloat xalign, yalign; - cairo_t *cr ; if (!button->editable || ! gtk_cell_renderer_get_sensitive (cell)) state_type = GTK_STATE_INSENSITIVE; @@ -217,8 +215,7 @@ psppire_cell_renderer_button_render (GtkCellRenderer *cell, update_style_cache (button, widget); - cr = gdk_cairo_create (window); - facade_button_render (widget, cr, expose_area, + facade_button_render (widget, cr, cell_area, button->border_width, button->button_style, state_type, button->label_style, button->label, button->xpad, @@ -237,14 +234,12 @@ psppire_cell_renderer_button_render (GtkCellRenderer *cell, cell_area->y); cairo_stroke (cr); } - - cairo_destroy (cr); } static void psppire_cell_renderer_button_get_size (GtkCellRenderer *cell, GtkWidget *widget, - GdkRectangle *cell_area, + const GdkRectangle *cell_area, gint *x_offset, gint *y_offset, gint *width, @@ -409,8 +404,8 @@ psppire_cell_renderer_button_start_editing (GtkCellRenderer *cell, GdkEvent *event, GtkWidget *widget, const gchar *path, - GdkRectangle *background_area, - GdkRectangle *cell_area, + const GdkRectangle *background_area, + const GdkRectangle *cell_area, GtkCellRendererState flags) { PsppireCellRendererButton *cell_button = PSPPIRE_CELL_RENDERER_BUTTON (cell); -- 2.30.2