StContainer: simplify focus navigation
When navigating from a non-immediate descendant of a container, we were attempting to use clutter_actor_get_transformed_position() to get the exact position of that actor relative to the container, but this did not really make sense, since we would be using the position of the intermediate container when navigating back. https://bugzilla.gnome.org/show_bug.cgi?id=644134
This commit is contained in:
parent
026fc531ba
commit
84eb66d5aa
@ -646,23 +646,9 @@ st_container_navigate_focus (StWidget *widget,
|
|||||||
* any child is inconsistently scaled, then the focus chain will
|
* any child is inconsistently scaled, then the focus chain will
|
||||||
* probably be unpredictable.
|
* probably be unpredictable.
|
||||||
*/
|
*/
|
||||||
if (from)
|
if (focus_child)
|
||||||
{
|
{
|
||||||
if (from == focus_child)
|
|
||||||
clutter_actor_get_allocation_box (focus_child, &sort_data.box);
|
clutter_actor_get_allocation_box (focus_child, &sort_data.box);
|
||||||
else
|
|
||||||
{
|
|
||||||
float cx, cy, fx, fy, fw, fh;
|
|
||||||
|
|
||||||
clutter_actor_get_transformed_position (CLUTTER_ACTOR (container), &cx, &cy);
|
|
||||||
clutter_actor_get_transformed_position (from, &fx, &fy);
|
|
||||||
clutter_actor_get_transformed_size (from, &fw, &fh);
|
|
||||||
|
|
||||||
sort_data.box.x1 = fx - cx;
|
|
||||||
sort_data.box.x2 = fx - cx + fw;
|
|
||||||
sort_data.box.y1 = fy - cy;
|
|
||||||
sort_data.box.y2 = fy - cy + fh;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user