st-widget: Allow diagonal moves for directional keynav
This allows us to do directional keyboard navigation when there's no actor inside the horizontal or vertical strip extending from the origin actor but there are other actors to the sides of that strip that could still be used as targets even if that means the focus would move diagonally. https://bugzilla.gnome.org/show_bug.cgi?id=663901
This commit is contained in:
parent
d542f63d3f
commit
02aae631d8
@ -1728,29 +1728,21 @@ filter_by_position (GList *children,
|
||||
case GTK_DIR_UP:
|
||||
if (cbox.y2 > rbox->y1 + 0.1)
|
||||
continue;
|
||||
if (cbox.x1 >= rbox->x2 || cbox.x2 <= rbox->x1)
|
||||
continue;
|
||||
break;
|
||||
|
||||
case GTK_DIR_DOWN:
|
||||
if (cbox.y1 < rbox->y2 - 0.1)
|
||||
continue;
|
||||
if (cbox.x1 >= rbox->x2 || cbox.x2 <= rbox->x1)
|
||||
continue;
|
||||
break;
|
||||
|
||||
case GTK_DIR_LEFT:
|
||||
if (cbox.x2 > rbox->x1 + 0.1)
|
||||
continue;
|
||||
if (cbox.y1 >= rbox->y2 || cbox.y2 <= rbox->y1)
|
||||
continue;
|
||||
break;
|
||||
|
||||
case GTK_DIR_RIGHT:
|
||||
if (cbox.x1 < rbox->x2 - 0.1)
|
||||
continue;
|
||||
if (cbox.y1 >= rbox->y2 || cbox.y2 <= rbox->y1)
|
||||
continue;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
Loading…
Reference in New Issue
Block a user