[goffice] GocCanvas: use GtkWidget class methods for realize and unrealize.
- From: Morten Welinder <mortenw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [goffice] GocCanvas: use GtkWidget class methods for realize and unrealize.
- Date: Fri, 11 Apr 2014 15:59:30 +0000 (UTC)
commit cea8fc64c6d2177f5c58d19aea7e5555a2cf9097
Author: Morten Welinder <terra gnome org>
Date: Fri Apr 11 11:58:40 2014 -0400
GocCanvas: use GtkWidget class methods for realize and unrealize.
That way we can control precisely what gets called first.
ChangeLog | 6 ++++++
goffice/canvas/goc-canvas.c | 22 ++++++++++++++--------
2 files changed, 20 insertions(+), 8 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 45d9b29..a689731 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2014-04-11 Morten Welinder <terra gnome org>
+
+ * goffice/canvas/goc-canvas.c (goc_canvas_realize)
+ (goc_canvas_unrealize): Install these as class methods, not
+ signals.
+
2014-04-10 Morten Welinder <terra gnome org>
* goffice/math/go-dtoa.c: When building with
diff --git a/goffice/canvas/goc-canvas.c b/goffice/canvas/goc-canvas.c
index d889b03..899bb4c 100644
--- a/goffice/canvas/goc-canvas.c
+++ b/goffice/canvas/goc-canvas.c
@@ -223,17 +223,23 @@ size_changed_cb (GocCanvas *canvas, GtkAllocation *alloc, G_GNUC_UNUSED gpointer
}
static void
-realize_cb (GocCanvas *canvas, G_GNUC_UNUSED gpointer data)
+goc_canvas_realize (GtkWidget *widget)
{
- GocItemClass *klass = GOC_ITEM_GET_CLASS (canvas->root);
- klass->realize (GOC_ITEM (canvas->root));
+ GocCanvas *canvas = GOC_CANVAS (widget);
+
+ GTK_WIDGET_CLASS (parent_klass)->realize (widget);
+
+ GOC_ITEM_GET_CLASS (canvas->root)->realize (GOC_ITEM (canvas->root));
}
static void
-unrealize_cb (GocCanvas *canvas, G_GNUC_UNUSED gpointer data)
+goc_canvas_unrealize (GtkWidget *widget)
{
- GocItemClass *klass = GOC_ITEM_GET_CLASS (canvas->root);
- klass->unrealize (GOC_ITEM (canvas->root));
+ GocCanvas *canvas = GOC_CANVAS (widget);
+
+ GOC_ITEM_GET_CLASS (canvas->root)->unrealize (GOC_ITEM (canvas->root));
+
+ GTK_WIDGET_CLASS (parent_klass)->unrealize (widget);
}
#endif
@@ -267,6 +273,8 @@ goc_canvas_class_init (GObjectClass *klass)
#ifdef GOFFICE_WITH_GTK
widget_klass->draw = goc_canvas_draw;
+ widget_klass->realize = goc_canvas_realize;
+ widget_klass->unrealize = goc_canvas_unrealize;
#endif
}
@@ -304,8 +312,6 @@ goc_canvas_init (GocCanvas *canvas)
g_signal_connect (G_OBJECT (w), "size-allocate", (GCallback) size_changed_cb, NULL);
g_signal_connect (G_OBJECT (w), "enter-notify-event", G_CALLBACK (enter_notify_cb), NULL);
g_signal_connect (G_OBJECT (w), "leave-notify-event", G_CALLBACK (leave_notify_cb), NULL);
- g_signal_connect (G_OBJECT (w), "realize", G_CALLBACK (realize_cb), NULL);
- g_signal_connect (G_OBJECT (w), "unrealize", G_CALLBACK (unrealize_cb), NULL);
#endif
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]