summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmitesh Singh <amitesh.sh@samsung.com>2015-06-25 16:15:06 +0200
committerCedric BAIL <cedric@osg.samsung.com>2015-06-25 17:24:08 +0200
commit8889b728774bd479294ee5029730c90cdddf4450 (patch)
tree52b78f9d53c8e26ae62915d9d74b5137390e1798
parent60396b1158df8a6ea4ca958c6ead92965ca61822 (diff)
genlist/list/win: Revert focus highlight animation when looping is enable
Summary: - Revert "focus: Added internal widget APIs of focus highlight object of elm window." This reverts commit 3f98d71830163a154762f2d16301d720c781b7c5. - Revert "List: Focus highlight when loop is enable" This reverts commit 57ad32a900e71f83441bf7246671b8f16a8ec909. - Revert "genlist: Focus highlight when loop is enable" This reverts commit 91282a22cba66ee5e7799018d3abe8957fb1b1fa. Reviewers: seoz, raster, jpeg, SanghyeonLee Subscribers: anand.km, seoz Differential Revision: https://phab.enlightenment.org/D2725 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
-rw-r--r--data/themes/edc/elm/focus.edc173
-rw-r--r--src/lib/elm_genlist.c59
-rw-r--r--src/lib/elm_list.c98
-rw-r--r--src/lib/elm_widget.c31
-rw-r--r--src/lib/elm_widget.h6
-rw-r--r--src/lib/elm_win.c29
6 files changed, 28 insertions, 368 deletions
diff --git a/data/themes/edc/elm/focus.edc b/data/themes/edc/elm/focus.edc
index 5c06179b9..19d78cde7 100644
--- a/data/themes/edc/elm/focus.edc
+++ b/data/themes/edc/elm/focus.edc
@@ -5,7 +5,7 @@ group { name: "elm/focus_highlight/top/default";
5 script { 5 script {
6 public s_x, s_y, s_w, s_h; /* source */ 6 public s_x, s_y, s_w, s_h; /* source */
7 public difx, dify, difw, difh; 7 public difx, dify, difw, difh;
8 8
9 public animator1(val, Float:pos) { 9 public animator1(val, Float:pos) {
10 new x, y, w, h, dx, dy, dw, dh, Float:p; 10 new x, y, w, h, dx, dy, dw, dh, Float:p;
11 p = 1.0 - ((1.0 - pos) * (1.0 - pos) * (1.0 - pos)); 11 p = 1.0 - ((1.0 - pos) * (1.0 - pos) * (1.0 - pos));
@@ -19,16 +19,16 @@ group { name: "elm/focus_highlight/top/default";
19 h = get_int(s_h) + dh; 19 h = get_int(s_h) + dh;
20 update_offset(x, y, w, h); 20 update_offset(x, y, w, h);
21 } 21 }
22 22
23 public update_offset(x, y, w, h) { 23 public update_offset(x, y, w, h) {
24 set_state_val(PART:"base", STATE_REL1_OFFSET, x, y); 24 set_state_val(PART:"base", STATE_REL1_OFFSET, x, y);
25 set_state_val(PART:"base", STATE_REL2_OFFSET, x + w, y + h); 25 set_state_val(PART:"base", STATE_REL2_OFFSET, x + w, y + h);
26 } 26 }
27 27
28 public message(Msg_Type:type, id, ...) { 28 public message(Msg_Type:type, id, ...) {
29 if ((type == MSG_INT_SET) && (id == 1)) { 29 if ((type == MSG_INT_SET) && (id == 1)) {
30 new x1, y1, w1, h1, x2, y2, w2, h2; 30 new x1, y1, w1, h1, x2, y2, w2, h2;
31 31
32 x1 = getarg(2); 32 x1 = getarg(2);
33 y1 = getarg(3); 33 y1 = getarg(3);
34 w1 = getarg(4); 34 w1 = getarg(4);
@@ -37,7 +37,7 @@ group { name: "elm/focus_highlight/top/default";
37 y2 = getarg(7); 37 y2 = getarg(7);
38 w2 = getarg(8); 38 w2 = getarg(8);
39 h2 = getarg(9); 39 h2 = getarg(9);
40 40
41 set_int(s_x, x1); 41 set_int(s_x, x1);
42 set_int(s_y, y1); 42 set_int(s_y, y1);
43 set_int(s_w, w1); 43 set_int(s_w, w1);
@@ -46,74 +46,31 @@ group { name: "elm/focus_highlight/top/default";
46 set_int(dify, y2 - y1); 46 set_int(dify, y2 - y1);
47 set_int(difw, w2 - w1); 47 set_int(difw, w2 - w1);
48 set_int(difh, h2 - h1); 48 set_int(difh, h2 - h1);
49 49
50 custom_state(PART:"base", "default", 0.0); 50 custom_state(PART:"base", "default", 0.0);
51 set_state_val(PART:"base", STATE_REL1, 0.0, 0.0); 51 set_state_val(PART:"base", STATE_REL1, 0.0, 0.0);
52 set_state_val(PART:"base", STATE_REL2, 0.0, 0.0); 52 set_state_val(PART:"base", STATE_REL2, 0.0, 0.0);
53 update_offset(x1, y1, w1, h1); 53 update_offset(x1, y1, w1, h1);
54 set_state(PART:"base", "custom", 0.0); 54 set_state(PART:"base", "custom", 0.0);
55 55
56 anim(0.2, "animator1", 1); 56 anim(0.2, "animator1", 1);
57 } 57 }
58 } 58 }
59 } 59 }
60 parts { 60 parts {
61 part { name: "base"; type: RECT; 61 part { name: "base"; type: SPACER;
62 clip_to: "clip";
63 description { state: "default" 0.0; 62 description { state: "default" 0.0;
64 visible: 0;
65 }
66 description { state: "move_down" 0.0;
67 inherit: "default" 0.0;
68 rel1.relative: 0 1;
69 rel2.relative: 1 2;
70 }
71 description { state: "move_up" 0.0;
72 inherit: "default" 0.0;
73 rel1.relative: 0 -1;
74 rel2.relative: 1 0;
75 }
76 description { state: "move_left" 0.0;
77 inherit: "default" 0.0;
78 rel1.relative: -1 0;
79 rel2.relative: 0 1;
80 }
81 description { state: "move_right" 0.0;
82 inherit: "default" 0.0;
83 rel1.relative: 1 0;
84 rel2.relative: 2 1;
85 } 63 }
86 } 64 }
87 part { name: "clip"; type: RECT; 65 part { name: "clip"; type: RECT;
88 scale: 1; 66 description { state: "default" 0.0;
89 description { 67 rel1.to: "glow";
90 state: "default" 0.0; 68 rel2.to: "glow";
91 color: 255 255 255 255;
92 rel1.relative: -1 -1;
93 rel2.relative: 2 2;
94 }
95 description { state: "move_down" 0.0;
96 inherit: "default" 0.0;
97 color: 255 255 255 0;
98 }
99 description { state: "move_up" 0.0;
100 inherit: "default" 0.0;
101 color: 255 255 255 0 ;
102 }
103 description { state: "move_left" 0.0;
104 inherit: "default" 0.0;
105 color: 255 255 255 0; 69 color: 255 255 255 0;
106 } 70 }
107 description { state: "move_right" 0.0;
108 inherit: "default" 0.0;
109 color: 255 255 255 0 ;
110 }
111 description { state: "visible" 0.0; 71 description { state: "visible" 0.0;
112 inherit: "default" 0.0; 72 inherit: "default" 0.0;
113 } 73 color: 255 255 255 255;
114 description { state: "invisible" 0.0;
115 inherit: "default" 0.0;
116 color: 255 255 255 0;
117 } 74 }
118 } 75 }
119 part { name: "glow"; mouse_events: 0; 76 part { name: "glow"; mouse_events: 0;
@@ -164,7 +121,7 @@ group { name: "elm/focus_highlight/top/default";
164 } 121 }
165 program { 122 program {
166 signal: "elm,action,focus,hide"; source: "elm"; 123 signal: "elm,action,focus,hide"; source: "elm";
167 action: STATE_SET "invisible" 0.0; 124 action: STATE_SET "default" 0.0;
168 transition: DECELERATE 0.4; 125 transition: DECELERATE 0.4;
169 target: "clip"; 126 target: "clip";
170 after: "stop2"; 127 after: "stop2";
@@ -196,109 +153,5 @@ group { name: "elm/focus_highlight/top/default";
196 action: STATE_SET "default" 0.0; 153 action: STATE_SET "default" 0.0;
197 target: "base"; 154 target: "base";
198 } 155 }
199 program { name: "move_down";
200 signal: "elm,action,focus,move,down";
201 source: "elm";
202 transition: LIN 0.3;
203 action: STATE_SET "move_down" 0.0;
204 target: "base";
205 target: "clip";
206 after: "move_down_end";
207 }
208 program { name: "move_down_end";
209 action: SIGNAL_EMIT "elm,focus,move,down,end" "elm";
210 }
211 program { name: "move_up";
212 signal: "elm,action,focus,move,up";
213 source: "elm";
214 transition: LIN 0.3;
215 action: STATE_SET "move_up" 0.0;
216 target: "base";
217 target: "clip";
218 after: "move_up_end";
219 }
220 program { name: "move_up_end";
221 action: SIGNAL_EMIT "elm,focus,move,up,end" "elm";
222 }
223 program { name: "move_home_from_up";
224 signal: "elm,action,focus,move,home,up";
225 source: "elm";
226 action: STATE_SET "move_up" 0.0;
227 target: "base";
228 target: "clip";
229 after: "move_home_from_up2";
230 }
231 program { name: "move_home_from_up2";
232 action: STATE_SET "default" 0.0;
233 transition: LIN 0.3;
234 target: "base";
235 target: "clip";
236 }
237 program { name: "move_home_from_down";
238 signal: "elm,action,focus,move,home,down";
239 source: "elm";
240 action: STATE_SET "move_down" 0.0;
241 target: "base";
242 target: "clip";
243 after: "move_home_from_down2";
244 }
245 program { name: "move_home_from_down2";
246 action: STATE_SET "default" 0.0;
247 transition: LIN 0.3;
248 target: "base";
249 target: "clip";
250 }
251 program { name: "move_left";
252 signal: "elm,action,focus,move,left";
253 source: "elm";
254 transition: LIN 0.3;
255 action: STATE_SET "move_left" 0.0;
256 target: "base";
257 target: "clip";
258 after: "move_left_end";
259 }
260 program { name: "move_left_end";
261 action: SIGNAL_EMIT "elm,focus,move,left,end" "elm";
262 }
263 program { name: "move_right";
264 signal: "elm,action,focus,move,right";
265 source: "elm";
266 transition: LIN 0.3;
267 action: STATE_SET "move_right" 0.0;
268 target: "base";
269 target: "clip";
270 after: "move_right_end";
271 }
272 program { name: "move_right_end";
273 action: SIGNAL_EMIT "elm,focus,move,right,end" "elm";
274 }
275 program { name: "move_home_from_right";
276 signal: "elm,action,focus,move,home,right";
277 source: "elm";
278 action: STATE_SET "move_right" 0.0;
279 target: "base";
280 target: "clip";
281 after: "move_home_from_right2";
282 }
283 program { name: "move_home_from_right2";
284 action: STATE_SET "default" 0.0;
285 transition: LIN 0.3;
286 target: "base";
287 target: "clip";
288 }
289 program { name: "move_home_from_left";
290 signal: "elm,action,focus,move,home,left";
291 source: "elm";
292 action: STATE_SET "move_left" 0.0;
293 target: "base";
294 target: "clip";
295 after: "move_home_from_left2";
296 }
297 program { name: "move_home_from_left2";
298 action: STATE_SET "default" 0.0;
299 transition: LIN 0.3;
300 target: "base";
301 target: "clip";
302 }
303 } 156 }
304} 157}
diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c
index dcb7c0cf3..a5d44ba5a 100644
--- a/src/lib/elm_genlist.c
+++ b/src/lib/elm_genlist.c
@@ -5386,9 +5386,13 @@ _elm_genlist_looping_up_cb(void *data,
5386 Elm_Object_Item *eo_it = elm_genlist_last_item_get(genlist); 5386 Elm_Object_Item *eo_it = elm_genlist_last_item_get(genlist);
5387 5387
5388 elm_genlist_item_show(eo_it, ELM_GENLIST_ITEM_SCROLLTO_IN); 5388 elm_genlist_item_show(eo_it, ELM_GENLIST_ITEM_SCROLLTO_IN);
5389 _elm_widget_focus_highlight_signal_emit(genlist, "elm,action,focus,move,up", "elm");
5390 elm_layout_signal_emit(genlist, "elm,action,looping,up,end", "elm"); 5389 elm_layout_signal_emit(genlist, "elm,action,looping,up,end", "elm");
5391 sd->item_looping_on = EINA_FALSE; 5390 sd->item_looping_on = EINA_FALSE;
5391
5392 if (!_elm_config->item_select_on_focus_disable)
5393 elm_genlist_item_selected_set(eo_it, EINA_TRUE);
5394 else
5395 elm_object_item_focus_set(eo_it, EINA_TRUE);
5392} 5396}
5393 5397
5394static void 5398static void
@@ -5404,43 +5408,13 @@ _elm_genlist_looping_down_cb(void *data,
5404 Elm_Object_Item *eo_it = elm_genlist_first_item_get(genlist); 5408 Elm_Object_Item *eo_it = elm_genlist_first_item_get(genlist);
5405 5409
5406 elm_genlist_item_show(eo_it, ELM_GENLIST_ITEM_SCROLLTO_IN); 5410 elm_genlist_item_show(eo_it, ELM_GENLIST_ITEM_SCROLLTO_IN);
5407 _elm_widget_focus_highlight_signal_emit(genlist, "elm,action,focus,move,down", "elm");
5408 elm_layout_signal_emit(genlist, "elm,action,looping,down,end", "elm"); 5411 elm_layout_signal_emit(genlist, "elm,action,looping,down,end", "elm");
5409 sd->item_looping_on = EINA_FALSE; 5412 sd->item_looping_on = EINA_FALSE;
5410}
5411
5412static void
5413_elm_genlist_focus_highlight_move_down_end_cb(void *data,
5414 Evas_Object *obj EINA_UNUSED,
5415 const char *emission EINA_UNUSED,
5416 const char *source EINA_UNUSED)
5417{
5418 Evas_Object *gl = data;
5419 Elm_Object_Item *eo_it = elm_genlist_first_item_get(gl);
5420
5421 if (!_elm_config->item_select_on_focus_disable)
5422 elm_genlist_item_selected_set(eo_it, EINA_TRUE);
5423 else
5424 elm_object_item_focus_set(eo_it, EINA_TRUE);
5425
5426 _elm_widget_focus_highlight_signal_emit(gl, "elm,action,focus,move,home,up", "elm");
5427}
5428 5413
5429static void 5414 if (!_elm_config->item_select_on_focus_disable)
5430_elm_genlist_focus_highlight_move_up_end_cb(void *data, 5415 elm_genlist_item_selected_set(eo_it, EINA_TRUE);
5431 Evas_Object *obj EINA_UNUSED, 5416 else
5432 const char *emission EINA_UNUSED, 5417 elm_object_item_focus_set(eo_it, EINA_TRUE);
5433 const char *source EINA_UNUSED)
5434{
5435 Evas_Object *gl = data;
5436 Elm_Object_Item *eo_it = elm_genlist_last_item_get(gl);
5437
5438 if (!_elm_config->item_select_on_focus_disable)
5439 elm_genlist_item_selected_set(eo_it, EINA_TRUE);
5440 else
5441 elm_object_item_focus_set(eo_it, EINA_TRUE);
5442
5443 _elm_widget_focus_highlight_signal_emit(gl, "elm,action,focus,move,home,down", "elm");
5444} 5418}
5445 5419
5446static void 5420static void
@@ -7954,21 +7928,6 @@ _elm_genlist_elm_widget_focused_item_get(Eo *obj EINA_UNUSED, Elm_Genlist_Data *
7954EOLIAN static void 7928EOLIAN static void
7955_elm_genlist_elm_widget_item_loop_enabled_set(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd, Eina_Bool enable) 7929_elm_genlist_elm_widget_item_loop_enabled_set(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd, Eina_Bool enable)
7956{ 7930{
7957 if (enable == EINA_TRUE)
7958 {
7959 _elm_widget_focus_highlight_signal_callback_add(obj, "elm,focus,move,down,end",
7960 "elm", _elm_genlist_focus_highlight_move_down_end_cb, obj);
7961 _elm_widget_focus_highlight_signal_callback_add(obj, "elm,focus,move,up,end",
7962 "elm", _elm_genlist_focus_highlight_move_up_end_cb, obj);
7963 }
7964 else
7965 {
7966 _elm_widget_focus_highlight_signal_callback_del(obj, "elm,focus,move,down,end",
7967 "elm", _elm_genlist_focus_highlight_move_down_end_cb);
7968 _elm_widget_focus_highlight_signal_callback_del(obj, "elm,focus,move,up,end",
7969 "elm", _elm_genlist_focus_highlight_move_up_end_cb);
7970 }
7971
7972 sd->item_loop_enable = !!enable; 7931 sd->item_loop_enable = !!enable;
7973} 7932}
7974 7933
diff --git a/src/lib/elm_list.c b/src/lib/elm_list.c
index f89b32cde..09aa88a49 100644
--- a/src/lib/elm_list.c
+++ b/src/lib/elm_list.c
@@ -1813,16 +1813,15 @@ _elm_list_looping_left_cb(void *data,
1813 elm_list_item_selected_set(it, EINA_TRUE); 1813 elm_list_item_selected_set(it, EINA_TRUE);
1814 else 1814 else
1815 elm_object_item_focus_set(it, EINA_TRUE); 1815 elm_object_item_focus_set(it, EINA_TRUE);
1816 _elm_widget_focus_highlight_signal_emit(list, "elm,action,focus,move,left", "elm");
1817 elm_layout_signal_emit(list, "elm,action,looping,left,end", "elm"); 1816 elm_layout_signal_emit(list, "elm,action,looping,left,end", "elm");
1818 sd->item_looping_on = EINA_FALSE; 1817 sd->item_looping_on = EINA_FALSE;
1819} 1818}
1820 1819
1821static void 1820static void
1822_elm_list_looping_right_cb(void *data, 1821_elm_list_looping_right_cb(void *data,
1823 Evas_Object *obj EINA_UNUSED, 1822 Evas_Object *obj EINA_UNUSED,
1824 const char *emission EINA_UNUSED, 1823 const char *emission EINA_UNUSED,
1825 const char *source EINA_UNUSED) 1824 const char *source EINA_UNUSED)
1826{ 1825{
1827 Evas_Object *list = data; 1826 Evas_Object *list = data;
1828 1827
@@ -1833,16 +1832,15 @@ _elm_list_looping_right_cb(void *data,
1833 elm_list_item_selected_set(it, EINA_TRUE); 1832 elm_list_item_selected_set(it, EINA_TRUE);
1834 else 1833 else
1835 elm_object_item_focus_set(it, EINA_TRUE); 1834 elm_object_item_focus_set(it, EINA_TRUE);
1836 _elm_widget_focus_highlight_signal_emit(list, "elm,action,focus,move,right", "elm");
1837 elm_layout_signal_emit(list, "elm,action,looping,right,end", "elm"); 1835 elm_layout_signal_emit(list, "elm,action,looping,right,end", "elm");
1838 sd->item_looping_on = EINA_FALSE; 1836 sd->item_looping_on = EINA_FALSE;
1839} 1837}
1840 1838
1841static void 1839static void
1842_elm_list_looping_up_cb(void *data, 1840_elm_list_looping_up_cb(void *data,
1843 Evas_Object *obj EINA_UNUSED, 1841 Evas_Object *obj EINA_UNUSED,
1844 const char *emission EINA_UNUSED, 1842 const char *emission EINA_UNUSED,
1845 const char *source EINA_UNUSED) 1843 const char *source EINA_UNUSED)
1846{ 1844{
1847 Evas_Object *list = data; 1845 Evas_Object *list = data;
1848 1846
@@ -1853,7 +1851,6 @@ _elm_list_looping_up_cb(void *data,
1853 elm_list_item_selected_set(it, EINA_TRUE); 1851 elm_list_item_selected_set(it, EINA_TRUE);
1854 else 1852 else
1855 elm_object_item_focus_set(it, EINA_TRUE); 1853 elm_object_item_focus_set(it, EINA_TRUE);
1856 _elm_widget_focus_highlight_signal_emit(list, "elm,action,focus,move,up", "elm");
1857 elm_layout_signal_emit(list, "elm,action,looping,up,end", "elm"); 1854 elm_layout_signal_emit(list, "elm,action,looping,up,end", "elm");
1858 sd->item_looping_on = EINA_FALSE; 1855 sd->item_looping_on = EINA_FALSE;
1859} 1856}
@@ -1873,80 +1870,8 @@ _elm_list_looping_down_cb(void *data,
1873 elm_list_item_selected_set(it, EINA_TRUE); 1870 elm_list_item_selected_set(it, EINA_TRUE);
1874 else 1871 else
1875 elm_object_item_focus_set(it, EINA_TRUE); 1872 elm_object_item_focus_set(it, EINA_TRUE);
1876 _elm_widget_focus_highlight_signal_emit(list, "elm,action,focus,move,down", "elm");
1877 elm_layout_signal_emit(list, "elm,action,looping,down,end", "elm");
1878 sd->item_looping_on = EINA_FALSE;
1879}
1880
1881static void
1882_elm_list_focus_highlight_move_down_end_cb(void *data,
1883 Evas_Object *obj EINA_UNUSED,
1884 const char *emission EINA_UNUSED,
1885 const char *source EINA_UNUSED)
1886{
1887 Evas_Object *list = data;
1888 Elm_List_Item *it = (Elm_List_Item *)elm_list_first_item_get(list);
1889 ELM_LIST_DATA_GET(list, sd);
1890
1891 if (!_elm_config->item_select_on_focus_disable)
1892 elm_list_item_selected_set(it, EINA_TRUE);
1893 else
1894 elm_object_item_focus_set(it, EINA_TRUE);
1895 elm_layout_signal_emit(list, "elm,action,looping,down,end", "elm"); 1873 elm_layout_signal_emit(list, "elm,action,looping,down,end", "elm");
1896 sd->item_looping_on = EINA_FALSE; 1874 sd->item_looping_on = EINA_FALSE;
1897
1898 _elm_widget_focus_highlight_signal_emit(list, "elm,action,focus,move,home,up", "elm");
1899}
1900
1901static void
1902_elm_list_focus_highlight_move_up_end_cb(void *data,
1903 Evas_Object *obj EINA_UNUSED,
1904 const char *emission EINA_UNUSED,
1905 const char *source EINA_UNUSED)
1906{
1907 Evas_Object *li = data;
1908 Elm_List_Item *it = (Elm_List_Item *)elm_list_last_item_get(li);
1909
1910 if (!_elm_config->item_select_on_focus_disable)
1911 elm_list_item_selected_set((Elm_Object_Item *)it, EINA_TRUE);
1912 else
1913 elm_object_item_focus_set((Elm_Object_Item *)it, EINA_TRUE);
1914
1915 _elm_widget_focus_highlight_signal_emit(li, "elm,action,focus,move,home,down", "elm");
1916}
1917
1918static void
1919_elm_list_focus_highlight_move_right_end_cb(void *data,
1920 Evas_Object *obj EINA_UNUSED,
1921 const char *emission EINA_UNUSED,
1922 const char *source EINA_UNUSED)
1923{
1924 Evas_Object *li = data;
1925 Elm_List_Item *it = (Elm_List_Item *)elm_list_first_item_get(li);
1926
1927 if (!_elm_config->item_select_on_focus_disable)
1928 elm_list_item_selected_set((Elm_Object_Item *)it, EINA_TRUE);
1929 else
1930 elm_object_item_focus_set((Elm_Object_Item *)it, EINA_TRUE);
1931
1932 _elm_widget_focus_highlight_signal_emit(li, "elm,action,focus,move,home,left", "elm");
1933}
1934
1935static void
1936_elm_list_focus_highlight_move_left_end_cb(void *data,
1937 Evas_Object *obj EINA_UNUSED,
1938 const char *emission EINA_UNUSED,
1939 const char *source EINA_UNUSED)
1940{
1941 Evas_Object *li = data;
1942 Elm_List_Item *it = (Elm_List_Item *)elm_list_last_item_get(li);
1943
1944 if (!_elm_config->item_select_on_focus_disable)
1945 elm_list_item_selected_set((Elm_Object_Item *)it, EINA_TRUE);
1946 else
1947 elm_object_item_focus_set((Elm_Object_Item *)it, EINA_TRUE);
1948
1949 _elm_widget_focus_highlight_signal_emit(li, "elm,action,focus,move,home,right", "elm");
1950} 1875}
1951 1876
1952EOLIAN static void 1877EOLIAN static void
@@ -3194,17 +3119,6 @@ _elm_list_elm_widget_focused_item_get(Eo *obj EINA_UNUSED, Elm_List_Data *sd)
3194EOLIAN static void 3119EOLIAN static void
3195_elm_list_elm_widget_item_loop_enabled_set(Eo *obj EINA_UNUSED, Elm_List_Data *sd, Eina_Bool enable) 3120_elm_list_elm_widget_item_loop_enabled_set(Eo *obj EINA_UNUSED, Elm_List_Data *sd, Eina_Bool enable)
3196{ 3121{
3197 if (enable == EINA_TRUE)
3198 {
3199 _elm_widget_focus_highlight_signal_callback_add(obj, "elm,focus,move,down,end",
3200 "elm", _elm_list_focus_highlight_move_down_end_cb, obj);
3201 _elm_widget_focus_highlight_signal_callback_add(obj, "elm,focus,move,up,end",
3202 "elm", _elm_list_focus_highlight_move_up_end_cb, obj);
3203 _elm_widget_focus_highlight_signal_callback_add(obj, "elm,focus,move,left,end",
3204 "elm", _elm_list_focus_highlight_move_left_end_cb, obj);
3205 _elm_widget_focus_highlight_signal_callback_add(obj, "elm,focus,move,right,end",
3206 "elm", _elm_list_focus_highlight_move_right_end_cb, obj);
3207 }
3208 sd->item_loop_enable = !!enable; 3122 sd->item_loop_enable = !!enable;
3209} 3123}
3210 3124
diff --git a/src/lib/elm_widget.c b/src/lib/elm_widget.c
index 17b81aec7..e105da434 100644
--- a/src/lib/elm_widget.c
+++ b/src/lib/elm_widget.c
@@ -173,37 +173,6 @@ _elm_widget_focus_highlight_start(const Evas_Object *obj)
173 _elm_win_focus_highlight_start(top); 173 _elm_win_focus_highlight_start(top);
174} 174}
175 175
176void
177_elm_widget_focus_highlight_signal_emit(Evas_Object *obj, const char *emission, const char *source)
178{
179 Evas_Object *top = elm_widget_top_get(obj);
180
181 if (top && eo_isa(top, ELM_WIN_CLASS))
182 _elm_win_focus_highlight_signal_emit(top, emission, source);
183}
184
185void
186_elm_widget_focus_highlight_signal_callback_add(Evas_Object *obj, const char *emission,
187 const char *source, Edje_Signal_Cb _focus_highlight_signal_cb,
188 void *data)
189{
190 Evas_Object *top = elm_widget_top_get(obj);
191
192 if (top && eo_isa(top, ELM_WIN_CLASS))
193 _elm_win_focus_highlight_signal_callback_add(top, emission, source, _focus_highlight_signal_cb, data);
194}
195
196void
197_elm_widget_focus_highlight_signal_callback_del(Evas_Object *obj, const char *emission,
198 const char *source,
199 Edje_Signal_Cb _focus_highlight_signal_cb)
200{
201 Evas_Object *top = elm_widget_top_get(obj);
202
203 if (top && eo_isa(top, ELM_WIN_CLASS))
204 _elm_win_focus_highlight_signal_callback_del(top, emission, source, _focus_highlight_signal_cb);
205}
206
207EAPI Eina_Bool 176EAPI Eina_Bool
208elm_widget_focus_highlight_enabled_get(const Evas_Object *obj) 177elm_widget_focus_highlight_enabled_get(const Evas_Object *obj)
209{ 178{
diff --git a/src/lib/elm_widget.h b/src/lib/elm_widget.h
index 12e6ebb94..5c173c684 100644
--- a/src/lib/elm_widget.h
+++ b/src/lib/elm_widget.h
@@ -529,16 +529,10 @@ void _elm_access_widget_item_access_order_unset(Elm_Widget_Item
529// widget focus highlight 529// widget focus highlight
530void _elm_widget_focus_highlight_start(const Evas_Object *obj); 530void _elm_widget_focus_highlight_start(const Evas_Object *obj);
531void _elm_widget_highlight_in_theme_update(Eo *obj); 531void _elm_widget_highlight_in_theme_update(Eo *obj);
532void _elm_widget_focus_highlight_signal_emit(Evas_Object *obj, const char *emission, const char *source);
533void _elm_widget_focus_highlight_signal_callback_add(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb _focus_highlight_signal_cb, void *data);
534void _elm_widget_focus_highlight_signal_callback_del(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb _focus_highlight_signal_cb);
535 532
536// win focus highlight 533// win focus highlight
537void _elm_win_focus_highlight_start(Evas_Object *obj); 534void _elm_win_focus_highlight_start(Evas_Object *obj);
538void _elm_win_focus_highlight_in_theme_update(Evas_Object *obj, Eina_Bool in_theme); 535void _elm_win_focus_highlight_in_theme_update(Evas_Object *obj, Eina_Bool in_theme);
539void _elm_win_focus_highlight_signal_emit(Evas_Object *obj, const char *emission, const char *source);
540void _elm_win_focus_highlight_signal_callback_add(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb _focus_highlight_signal_cb, void *data);
541void _elm_win_focus_highlight_signal_callback_del(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb _focus_highlight_signal_cb);
542void _elm_win_focus_auto_show(Evas_Object *obj); 536void _elm_win_focus_auto_show(Evas_Object *obj);
543void _elm_win_focus_auto_hide(Evas_Object *obj); 537void _elm_win_focus_auto_hide(Evas_Object *obj);
544 538
diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c
index a7c9e74cf..6d4135905 100644
--- a/src/lib/elm_win.c
+++ b/src/lib/elm_win.c
@@ -5337,35 +5337,6 @@ _elm_win_focus_highlight_in_theme_update(Evas_Object *obj, Eina_Bool in_theme)
5337} 5337}
5338 5338
5339void 5339void
5340_elm_win_focus_highlight_signal_emit(Evas_Object *obj, const char *emission, const char *source)
5341{
5342 ELM_WIN_DATA_GET(obj, sd);
5343 if ((sd->focus_highlight.enabled) || (sd->focus_highlight.auto_enabled))
5344 edje_object_signal_emit(sd->focus_highlight.fobj, emission, source);
5345}
5346
5347void
5348_elm_win_focus_highlight_signal_callback_add(Evas_Object *obj, const char *emission,
5349 const char *source, Edje_Signal_Cb _focus_highlight_signal_cb,
5350 void *data)
5351{
5352 ELM_WIN_DATA_GET(obj, sd);
5353 if (((sd->focus_highlight.enabled) || (sd->focus_highlight.auto_enabled))
5354 && (sd->focus_highlight.fobj))
5355 edje_object_signal_callback_add(sd->focus_highlight.fobj, emission, source, _focus_highlight_signal_cb, data);
5356}
5357
5358void
5359_elm_win_focus_highlight_signal_callback_del(Evas_Object *obj, const char *emission,
5360 const char *source, Edje_Signal_Cb _focus_highlight_signal_cb)
5361{
5362 ELM_WIN_DATA_GET(obj, sd);
5363 if (((sd->focus_highlight.enabled) || (sd->focus_highlight.auto_enabled))
5364 && (sd->focus_highlight.fobj))
5365 edje_object_signal_callback_del(sd->focus_highlight.fobj, emission, source, _focus_highlight_signal_cb);
5366}
5367
5368void
5369_elm_win_focus_highlight_start(Evas_Object *obj) 5340_elm_win_focus_highlight_start(Evas_Object *obj)
5370{ 5341{
5371 ELM_WIN_DATA_GET(obj, sd); 5342 ELM_WIN_DATA_GET(obj, sd);