mirror of
https://github.com/brl/mutter.git
synced 2025-06-14 01:09:30 +00:00
Fix last improper usage of ClutterUnits
ClutterUnits should not be used interchangeably as, or with ClutterFixed values. ClutterUnits should also not be assumed to be integers. This commit fixes the last few improper usages of ClutterUnit values, and adds a CLUTTER_UNITS_FORMAT macro for safely printing ClutterUnit values with printf().
This commit is contained in:
@ -21,19 +21,19 @@ init_handles ()
|
||||
clutter_actor_set_position (p[i], 0, 0);
|
||||
clutter_group_add (CLUTTER_GROUP (main_stage), p[i]);
|
||||
|
||||
clutter_actor_set_position (p[i],
|
||||
CLUTTER_FIXED_TO_INT (v[i].x) -
|
||||
clutter_actor_get_width (p[i])/2,
|
||||
CLUTTER_FIXED_TO_INT (v[i].y) -
|
||||
clutter_actor_get_height (p[i])/2);
|
||||
clutter_actor_set_positionu (p[i],
|
||||
v[i].x -
|
||||
clutter_actor_get_widthu (p[i])/2,
|
||||
v[i].y -
|
||||
clutter_actor_get_heightu (p[i])/2);
|
||||
|
||||
clutter_actor_raise_top (p[i]);
|
||||
|
||||
clutter_actor_show (p[i]);
|
||||
}
|
||||
|
||||
v1.x = CLUTTER_INT_TO_FIXED (clutter_actor_get_width (rect)/2);
|
||||
v1.y = CLUTTER_INT_TO_FIXED (clutter_actor_get_height (rect)/2);
|
||||
v1.x = clutter_actor_get_widthu (rect) / 2;
|
||||
v1.y = clutter_actor_get_heightu (rect) / 2;
|
||||
v1.z = 0;
|
||||
|
||||
clutter_actor_apply_transform_to_point (rect, &v1, &v2);
|
||||
@ -41,11 +41,11 @@ init_handles ()
|
||||
clutter_actor_set_size (p[4], 5, 5);
|
||||
clutter_actor_set_position (p[4], 0, 0);
|
||||
clutter_group_add (CLUTTER_GROUP (main_stage), p[4]);
|
||||
clutter_actor_set_position (p[4],
|
||||
CLUTTER_FIXED_TO_INT (v2.x) -
|
||||
clutter_actor_get_width (p[4])/2,
|
||||
CLUTTER_FIXED_TO_INT (v2.y) -
|
||||
clutter_actor_get_height (p[4])/2);
|
||||
clutter_actor_set_positionu (p[4],
|
||||
v2.x -
|
||||
clutter_actor_get_widthu (p[4])/2,
|
||||
v2.y -
|
||||
clutter_actor_get_heightu (p[4])/2);
|
||||
|
||||
clutter_actor_raise_top (p[4]);
|
||||
|
||||
@ -62,23 +62,21 @@ place_handles ()
|
||||
clutter_actor_get_abs_allocation_vertices (rect, v);
|
||||
for (i = 0; i < 4; ++i)
|
||||
{
|
||||
clutter_actor_set_position (p[i],
|
||||
CLUTTER_FIXED_TO_INT (v[i].x) -
|
||||
clutter_actor_get_width (p[i])/2,
|
||||
CLUTTER_FIXED_TO_INT (v[i].y) -
|
||||
clutter_actor_get_height (p[i])/2);
|
||||
clutter_actor_set_positionu (p[i],
|
||||
v[i].x -
|
||||
clutter_actor_get_widthu (p[i])/2,
|
||||
v[i].y -
|
||||
clutter_actor_get_heightu (p[i])/2);
|
||||
}
|
||||
|
||||
v1.x = CLUTTER_INT_TO_FIXED (clutter_actor_get_width (rect)/2);
|
||||
v1.y = CLUTTER_INT_TO_FIXED (clutter_actor_get_height (rect)/2);
|
||||
v1.x = clutter_actor_get_widthu (rect)/2;
|
||||
v1.y = clutter_actor_get_heightu (rect)/2;
|
||||
v1.z = 0;
|
||||
|
||||
clutter_actor_apply_transform_to_point (rect, &v1, &v2);
|
||||
clutter_actor_set_position (p[4],
|
||||
CLUTTER_FIXED_TO_INT (v2.x) -
|
||||
clutter_actor_get_width (p[4])/2,
|
||||
CLUTTER_FIXED_TO_INT (v2.y) -
|
||||
clutter_actor_get_height (p[4])/2);
|
||||
clutter_actor_set_positionu (p[4],
|
||||
v2.x - clutter_actor_get_widthu (p[4])/2,
|
||||
v2.y - clutter_actor_get_heightu (p[4])/2);
|
||||
}
|
||||
|
||||
#define M(m,row,col) (m)[col*4+row]
|
||||
@ -127,7 +125,7 @@ on_event (ClutterStage *stage,
|
||||
gint x, y;
|
||||
gint i;
|
||||
ClutterActorBox box1, box2;
|
||||
ClutterFixed xp, yp;
|
||||
ClutterUnit xp, yp;
|
||||
|
||||
i = find_handle_index (dragging);
|
||||
|
||||
@ -139,25 +137,24 @@ on_event (ClutterStage *stage,
|
||||
clutter_actor_get_allocation_box (dragging, &box1);
|
||||
clutter_actor_get_allocation_box (rect, &box2);
|
||||
|
||||
xp = CLUTTER_INT_TO_FIXED (x-3) - box1.x1;
|
||||
yp = CLUTTER_INT_TO_FIXED (y-3) - box1.y1;
|
||||
xp = CLUTTER_UNITS_FROM_DEVICE (x - 3) - box1.x1;
|
||||
yp = CLUTTER_UNITS_FROM_DEVICE (y - 3) - box1.y1;
|
||||
|
||||
if (i == 4)
|
||||
{
|
||||
g_debug ("moving box by %f, %f",
|
||||
CLUTTER_FIXED_TO_FLOAT (xp),
|
||||
CLUTTER_FIXED_TO_FLOAT (yp));
|
||||
CLUTTER_UNITS_TO_FLOAT (xp),
|
||||
CLUTTER_UNITS_TO_FLOAT (yp));
|
||||
|
||||
clutter_actor_move_by (rect,
|
||||
CLUTTER_FIXED_TO_INT(xp),
|
||||
CLUTTER_FIXED_TO_INT(yp));
|
||||
clutter_actor_move_byu (rect, xp, yp);
|
||||
}
|
||||
else
|
||||
{
|
||||
g_debug ("adjusting box by %f, %f, handle %d",
|
||||
CLUTTER_FIXED_TO_FLOAT (xp),
|
||||
CLUTTER_FIXED_TO_FLOAT (yp),
|
||||
CLUTTER_UNITS_TO_FLOAT (xp),
|
||||
CLUTTER_UNITS_TO_FLOAT (yp),
|
||||
i);
|
||||
|
||||
switch (i)
|
||||
{
|
||||
case 0:
|
||||
|
Reference in New Issue
Block a user