Avoid to use Clutter scaling feature.

This commit is contained in:
Daiki Ueno
2011-01-25 18:10:42 +09:00
parent ae857f5981
commit 70df392647
4 changed files with 35 additions and 21 deletions

View File

@ -60,21 +60,28 @@ create_key (EekElement *element, gpointer user_data)
}
static void
eek_clutter_section_real_realize (ClutterActor *self)
set_position (ClutterActor *self)
{
EekClutterSectionPrivate *priv = EEK_CLUTTER_SECTION_GET_PRIVATE(self);
CreateKeyCallbackData data;
EekBounds bounds;
gdouble scale;
eek_element_get_bounds (EEK_ELEMENT(priv->section), &bounds);
scale = eek_renderer_get_scale (EEK_RENDERER(priv->renderer));
clutter_actor_set_position (self, bounds.x * scale, bounds.y * scale);
}
static void
eek_clutter_section_real_realize (ClutterActor *self)
{
EekClutterSectionPrivate *priv = EEK_CLUTTER_SECTION_GET_PRIVATE(self);
CreateKeyCallbackData data;
clutter_actor_set_rotation (self,
CLUTTER_Z_AXIS,
eek_section_get_angle (priv->section),
0.0f, 0.0f, 0.0f);
set_position (self);
data.actor = self;
data.renderer = priv->renderer;
eek_container_foreach_child (EEK_CONTAINER(priv->section),
@ -82,6 +89,14 @@ eek_clutter_section_real_realize (ClutterActor *self)
&data);
}
static void
eek_clutter_section_real_paint (ClutterActor *self)
{
set_position (self);
CLUTTER_ACTOR_CLASS (eek_clutter_section_parent_class)->
paint (self);
}
static void
eek_clutter_section_real_get_preferred_width (ClutterActor *self,
float for_height,
@ -114,15 +129,6 @@ eek_clutter_section_real_get_preferred_height (ClutterActor *self,
*natural_height_p = bounds.height * scale;
}
static void
eek_clutter_section_real_allocate (ClutterActor *self,
const ClutterActorBox *box,
ClutterAllocationFlags flags)
{
CLUTTER_ACTOR_CLASS (eek_clutter_section_parent_class)->
allocate (self, box, flags);
}
static void
eek_clutter_section_set_property (GObject *object,
guint prop_id,
@ -177,11 +183,12 @@ eek_clutter_section_class_init (EekClutterSectionClass *klass)
actor_class->realize =
eek_clutter_section_real_realize;
actor_class->paint =
eek_clutter_section_real_paint;
actor_class->get_preferred_width =
eek_clutter_section_real_get_preferred_width;
actor_class->get_preferred_height =
eek_clutter_section_real_get_preferred_height;
actor_class->allocate = eek_clutter_section_real_allocate;
gobject_class->set_property = eek_clutter_section_set_property;
gobject_class->dispose = eek_clutter_section_dispose;