mirror of
https://github.com/brl/mutter.git
synced 2024-11-27 02:20:43 -05:00
Use clutter_container_find_child_by_id() when picking
ClutterStage now uses the newly added clutter_container_find_child_by_id() function to find the right child in the scenegraph, using the picking id. This fixes the test-boxes test case.
This commit is contained in:
parent
57c0be73cd
commit
9635f60064
@ -873,8 +873,8 @@ clutter_stage_get_actor_at_pos (ClutterStage *stage,
|
|||||||
context->pick_mode = FALSE;
|
context->pick_mode = FALSE;
|
||||||
|
|
||||||
/* Calls should work under both GL and GLES, note GLES needs RGBA */
|
/* Calls should work under both GL and GLES, note GLES needs RGBA */
|
||||||
glGetIntegerv(GL_VIEWPORT, viewport);
|
glGetIntegerv (GL_VIEWPORT, viewport);
|
||||||
glReadPixels(x, viewport[3] - y, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, pixel);
|
glReadPixels (x, viewport[3] - y, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, pixel);
|
||||||
|
|
||||||
if (pixel[0] == 0xff && pixel[1] == 0xff && pixel[2] == 0xff)
|
if (pixel[0] == 0xff && pixel[1] == 0xff && pixel[2] == 0xff)
|
||||||
return CLUTTER_ACTOR(stage);
|
return CLUTTER_ACTOR(stage);
|
||||||
@ -882,9 +882,11 @@ clutter_stage_get_actor_at_pos (ClutterStage *stage,
|
|||||||
cogl_get_bitmasks (&r, &g, &b, NULL);
|
cogl_get_bitmasks (&r, &g, &b, NULL);
|
||||||
|
|
||||||
/* Decode color back into an ID, taking into account fb depth */
|
/* Decode color back into an ID, taking into account fb depth */
|
||||||
id = pixel[2]>>(8-b) | pixel[1]<<b>>(8-g) | pixel[0]<<(g+b)>>(8-r);
|
id = pixel[2] >> (8 - b)
|
||||||
|
| pixel[1] << b >> (8 - g)
|
||||||
|
| pixel[0] << (g + b) >> (8 - r);
|
||||||
|
|
||||||
return clutter_group_find_child_by_id (CLUTTER_GROUP (stage), id);
|
return clutter_container_find_child_by_id (CLUTTER_CONTAINER (stage), id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user