[libchamplain] Remove some more unnecessary stuff in ChamplainPoint and fix some minor issues
- From: Jiří Techet <jiritechet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libchamplain] Remove some more unnecessary stuff in ChamplainPoint and fix some minor issues
- Date: Fri, 12 Apr 2013 12:07:14 +0000 (UTC)
commit 56cfc6deb1e21abb43dd16203f2dea7a06b43247
Author: Jiří Techet <techet gmail com>
Date: Thu Apr 11 16:35:58 2013 +0200
Remove some more unnecessary stuff in ChamplainPoint and fix some minor issues
champlain/champlain-point.c | 60 ++++++++----------------------------------
1 files changed, 12 insertions(+), 48 deletions(-)
---
diff --git a/champlain/champlain-point.c b/champlain/champlain-point.c
index 4ef5bc7..d291c86 100644
--- a/champlain/champlain-point.c
+++ b/champlain/champlain-point.c
@@ -63,7 +63,6 @@ struct _ChamplainPointPrivate
{
ClutterColor *color;
gdouble size;
- ClutterActor *point_actor;
ClutterContent *canvas;
guint redraw_id;
@@ -124,15 +123,6 @@ champlain_point_set_property (GObject *object,
static void
-paint (ClutterActor *self)
-{
- ChamplainPointPrivate *priv = GET_PRIVATE (self);
-
- clutter_actor_paint (priv->point_actor);
-}
-
-
-static void
pick (ClutterActor *self,
const ClutterColor *color)
{
@@ -152,38 +142,10 @@ pick (ClutterActor *self,
cogl_path_fill ();
}
-static void
-allocate (ClutterActor *self,
- const ClutterActorBox *box,
- ClutterAllocationFlags flags)
-{
- ClutterActorBox child_box;
-
- ChamplainPointPrivate *priv = GET_PRIVATE (self);
-
- CLUTTER_ACTOR_CLASS (champlain_point_parent_class)->allocate (self, box, flags);
-
- child_box.x1 = 0;
- child_box.x2 = box->x2 - box->x1;
- child_box.y1 = 0;
- child_box.y2 = box->y2 - box->y1;
-
- clutter_actor_allocate (priv->point_actor, &child_box, flags);
-}
-
static void
champlain_point_dispose (GObject *object)
{
- ChamplainPointPrivate *priv = CHAMPLAIN_POINT (object)->priv;
-
- if (priv->point_actor)
- {
- clutter_actor_remove_child(CLUTTER_ACTOR (object), priv->point_actor);
- g_object_unref (priv->point_actor);
- priv->point_actor = NULL;
- }
-
G_OBJECT_CLASS (champlain_point_parent_class)->dispose (object);
}
@@ -199,6 +161,12 @@ champlain_point_finalize (GObject *object)
priv->color = NULL;
}
+ if (priv->canvas)
+ {
+ g_object_unref (priv->canvas);
+ priv->canvas = NULL;
+ }
+
G_OBJECT_CLASS (champlain_point_parent_class)->finalize (object);
}
@@ -216,8 +184,6 @@ champlain_point_class_init (ChamplainPointClass *klass)
object_class->get_property = champlain_point_get_property;
object_class->set_property = champlain_point_set_property;
- actor_class->allocate = allocate;
- actor_class->paint = paint;
actor_class->pick = pick;
g_object_class_install_property (object_class, PROP_COLOR,
@@ -243,9 +209,8 @@ draw (ClutterCanvas *canvas,
cairo_t *cr,
gint width,
gint height,
- gpointer user_data)
+ ChamplainPoint *point)
{
- ChamplainPoint *point = CHAMPLAIN_POINT (user_data);
ChamplainPointPrivate *priv = point->priv;
gdouble size = priv->size;
gdouble radius = size / 2.0;
@@ -295,16 +260,14 @@ champlain_point_init (ChamplainPoint *point)
priv->color = clutter_color_copy (&DEFAULT_COLOR);
priv->size = 12;
- priv->point_actor = clutter_actor_new ();
priv->canvas = clutter_canvas_new ();
g_signal_connect (priv->canvas, "draw", G_CALLBACK (draw), point);
clutter_canvas_set_size (CLUTTER_CANVAS (priv->canvas), priv->size, priv->size);
- clutter_actor_set_size (priv->point_actor, priv->size, priv->size);
- clutter_actor_set_content (priv->point_actor, priv->canvas);
+ clutter_actor_set_size (CLUTTER_ACTOR (point), priv->size, priv->size);
+ clutter_actor_set_content (CLUTTER_ACTOR (point), priv->canvas);
+ clutter_content_invalidate (priv->canvas);
- clutter_actor_add_child (CLUTTER_ACTOR (point), priv->point_actor);
g_signal_connect (point, "notify::selected", G_CALLBACK (notify_selected), NULL);
- clutter_actor_queue_relayout (CLUTTER_ACTOR (point));
}
@@ -367,8 +330,9 @@ champlain_point_set_size (ChamplainPoint *point,
point->priv->size = size;
clutter_canvas_set_size (CLUTTER_CANVAS (priv->canvas), size, size);
- clutter_actor_set_size (priv->point_actor, priv->size, priv->size);
+ clutter_actor_set_size (CLUTTER_ACTOR (point), priv->size, priv->size);
g_object_notify (G_OBJECT (point), "size");
+ clutter_content_invalidate (priv->canvas);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]