Commit 49dcf7b1751b2f574d48afd32043a007bccf6482

Thomas de Grivel 2020-03-03T13:41:45

fix rtbuf_widget draw

diff --git a/rtbuf_widget.c b/rtbuf_widget.c
index 5ea255e..b6354fa 100644
--- a/rtbuf_widget.c
+++ b/rtbuf_widget.c
@@ -43,7 +43,8 @@ static void rtbuf_widget_get_property (GObject     *object,
                                        GValue      *value,
                                        GParamSpec  *pspec);
 static void rtbuf_widget_finalize (GObject *object);
-static gboolean rtbuf_widget_draw (GtkWidget *widget, cairo_t *cr);
+static gboolean rtbuf_widget_draw (GtkWidget *widget, cairo_t *cr,
+                                   gpointer data);
 
 G_DEFINE_TYPE_WITH_PRIVATE (RtbufWidget, rtbuf_widget, GTK_TYPE_BOX)
 
@@ -68,7 +69,6 @@ rtbuf_widget_class_init (RtbufWidgetClass *klass)
                          "Pointer to a s_rtbuf",
                          G_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY);
   g_object_class_install_properties(gobject_class, LAST_PROP, rtbuf_widget_props);
-  widget_class->draw = rtbuf_widget_draw;
   gtk_widget_class_set_template_from_resource(widget_class,
                                               "/rtbuf/rtbuf_widget.ui");
   gtk_widget_class_bind_template_child_private(widget_class,
@@ -86,6 +86,8 @@ rtbuf_widget_init (RtbufWidget *widget)
   printf("rtbuf_widget init\n");
   priv = rtbuf_widget_get_instance_private(widget);
   gtk_widget_init_template(GTK_WIDGET(widget));
+  g_signal_connect(G_OBJECT(widget), "draw",
+                   G_CALLBACK(rtbuf_widget_draw), priv);
 }
 
 static void 
@@ -138,11 +140,12 @@ rtbuf_widget_finalize (GObject *object)
 }
 
 static gboolean
-rtbuf_widget_draw (GtkWidget *widget, cairo_t *cr)
+rtbuf_widget_draw (GtkWidget *widget, cairo_t *cr, gpointer data)
 {
-  cairo_set_source_rgb(cr, 0.5, 0.5, 0.5);
+  RtbufWidgetPrivate *priv = (RtbufWidgetPrivate*) data;
+  cairo_set_source_rgb(cr, 1.0, 1.0, 0.7);
   cairo_paint(cr);
-  GTK_WIDGET_GET_PARENT_CLASS(widget)->draw(widget, cr);
+  return FALSE;
 }
 
 RtbufWidget *