Correct problems with psppire-cell-renderer-button
authorJohn Darrington <john@darrington.wattle.id.au>
Tue, 28 May 2013 16:07:06 +0000 (18:07 +0200)
committerJohn Darrington <john@darrington.wattle.id.au>
Wed, 29 May 2013 04:58:32 +0000 (06:58 +0200)
src/ui/gui/pspp-widget-facade.c
src/ui/gui/pspp-widget-facade.h
src/ui/gui/psppire-cell-renderer-button.c

index 08f6572110d70972a53cbf7e94870cc3997b4aa3..e5070bff3ec97f0b5446e6dd9c2bc3c96ae80807 100644 (file)
@@ -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,
index 4bbf1540e2c48a4ac1985843132d222c093ea535..6705185f7fcdc3f2524243ca6658b5dcbf6701b6 100644 (file)
@@ -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,
index c26849deae50b9dbbaa188e0d738d29e5e4e8ffd..5a20ff5a8df8d039acaf3050cad37ac09c5fde93 100644 (file)
@@ -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);