atspi: handle atspi proxy connection at runtime
authorShinwoo Kim <cinoo.kim@samsung.com>
Tue, 12 Dec 2017 14:55:40 +0000 (20:25 +0530)
committerWonki Kim <wonki_.kim@samsung.com>
Wed, 27 Dec 2017 08:58:44 +0000 (17:58 +0900)
commit739f5631b457c9548d00b4707e693afc43ea530f
treeecf3481cfa485f6aeffdae789e7021f1eea41426
parent952935288161c93bc8c733e8f490e47aa057b224
atspi: handle atspi proxy connection at runtime

The following cases make atspi proxy work incorrectly.

[case 1]
1. screen reader on, then a11y order would be
   A1(embedding, deputy) - B1(embedded) - B2(embedded) - A2(embedding)
2. make A2 grab highlight
3. go previous, then A1 grabs highlight.
   but expected result is that the B2 grabs highlight

[case 2]
1. screen reader on, then a11y order would be
   A1(embedding, deputy) - B1(embedded) - B2(embedded) - A2(embedding)
2. make A1 grab highlight
3. go next, then B1 grabs highlight.
   This means that the proxy connection is made properly.
4. screen reader off
5. screen reader on, then a11y order is
   A1(embedding, deputy) -  A2(embedding)
   but the following is expected result as step 1
   A1(embedding, deputy) - B1(embedded) - B2(embedded) - A2(embedding)

So far the pory connects if elm_interface_atspi_children_get is called.
So there is no chance to make connection for the [case 1].

When atspi is disabled, then all atspi related interface is closed.
But the proxy related resources are not removed.
If atspi is enabled again, then newly created interface is used on new BUS.
And the proxy related resources are reused.
So the [case 2]  happens.

This patch set depends on screen-connector to use "widget,create" signal to
connect proxy on elementary side. This should be removed, and we have to
provide proper API to be used on screen-connector side to connect proxy.

orig: 4b26fedd8b3366ac3e5bc89e8e09a5e668616dfd

Change-Id: I4f3a68c9eca271c9ba3b38bff9be3df1794f27e5
Signed-off-by: Shilpa Singh <shilpa.singh@samsung.com>
src/lib/elementary/efl_ui_layout.c
src/lib/elementary/efl_ui_win.c
src/lib/elementary/efl_ui_win_socket.c
src/lib/elementary/elm_atspi_proxy.eo
src/lib/elementary/elm_widget.c
src/lib/elementary/elm_widget.eo