Add reading for reaching the last item in dropdown list 07/287907/7 accepted/tizen/6.0/unified/20230216.031007 submit/tizen_6.0/20230215.101136
authorLukasz Oleksak <l.oleksak@samsung.com>
Tue, 7 Feb 2023 11:57:35 +0000 (12:57 +0100)
committerLukasz Oleksak <l.oleksak@samsung.com>
Tue, 14 Feb 2023 10:24:01 +0000 (11:24 +0100)
Change-Id: I9d4831e9ce7f1ee9eb30efb61f8ebe87111d5c87

50 files changed:
res/po/ar.po
res/po/az.po
res/po/bg.po
res/po/ca.po
res/po/cs.po
res/po/da.po
res/po/de.po
res/po/el_GR.po
res/po/en.po
res/po/en_PH.po
res/po/en_US.po
res/po/es_ES.po
res/po/es_US.po
res/po/et.po
res/po/eu.po
res/po/fi.po
res/po/fr.po
res/po/fr_CA.po
res/po/ga.po
res/po/gl.po
res/po/hr.po
res/po/hu.po
res/po/hy.po
res/po/is.po
res/po/it_IT.po
res/po/ja_JP.po
res/po/ka.po
res/po/kk.po
res/po/ko_KR.po
res/po/lt.po
res/po/lv.po
res/po/mk.po
res/po/nb.po
res/po/nl.po
res/po/pl.po
res/po/pt_BR.po
res/po/pt_PT.po
res/po/ro.po
res/po/ru_RU.po
res/po/sk.po
res/po/sl.po
res/po/sr.po
res/po/sv.po
res/po/tr_TR.po
res/po/uk.po
res/po/uz.po
res/po/zh_CN.po
res/po/zh_HK.po
res/po/zh_TW.po
src/flat_navi.c

index 362448fe961afee7dad2fc152bf558a33026f322..a62b33f4b72d58731e88f8beb2fad8a3d28941f3 100755 (executable)
@@ -1007,3 +1007,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index c3067091fa854671e5812f9408f9a3ed3d721170..878e6e567cdd40694348e15556ecad99af15d7cc 100755 (executable)
@@ -1009,3 +1009,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 807363e5905cbee2b0b7f42ad7f5c45aafc1f1f4..b024ba8c06663ff65b480400fda5d25f5867edd6 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index cf19508536bc769d8fc05311d171d38d7c816479..213f2721ac3bb0ede4ee7cd27c4eeea5acbaf64a 100755 (executable)
@@ -1047,3 +1047,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 59d8fac17c24d929515d6c306c0f5525884aef78..d20ccc3eda7d989ff1b98d8961fb194324c0a050 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 890ae8d9fc31d68641c96b903162f504711f2672..e11e65c71d5ad7129559569982163c6a40686765 100755 (executable)
@@ -1047,3 +1047,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index b9d6adee45d69f23b689a6496e9dd113301e7869..b725d4861de16973c6f57c5b8c96cd8e27f4eda4 100755 (executable)
@@ -1047,3 +1047,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 294d6f3fc83ba353d86f0f74fc7967974d3aa57c..878ea89f8d2a3172fa8a80a16d6858db59f6d974 100755 (executable)
@@ -1047,3 +1047,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 5437fca8c57833b65086da9887c351ee2214cc3e..cb4e706a54bdd0312a04ea90785aab4e411e1fc5 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 83e24c0cfeee6bbcfffb1c30a252da38d66359aa..d79e42aea12879ac13c84169d10c48ebc80a191f 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index b57a45b9bd78c94c854ea82076c9d7e94e3ee543..3374fd904d4b6985fda2265cd61a8b8289de88e9 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index b2d8933fd40a258a634e8934e0bbdeb8244a25f1..1de3017eac1692cb2ff2c087ec140cf0170b50eb 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 58c746fbc6f1317c5cef00a28fa73d28608571bd..555ccd5d3154b4db57f05ddb50a5feb8ad5dc8f9 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 0b77d491cbfee5796d803f43785c105fc221c3ee..f3934a38c6dbc18bc7e654162ce942fdc18c9f1c 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 421e5c02d9f7e8ba707582d738adfdd162be52f5..faea32b81fa6fc8f4ef06076059e7be40aedd670 100755 (executable)
@@ -1047,3 +1047,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 17c129e708279f7e0f676541f4bd19ed64b40f4c..50d2157403ea8edaf35eb4c31263ad315453b4a6 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index e8cb173f4c08aedffd6b0107c49954c30e54b459..fffe8c9a465de099a059492f8cde20aa8ec16a27 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index f17e610f1318d499cacc8e01f2a5ebec53a04894..e9e4c6a553812deaae54bcd2b42696da64099dcf 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 6fdd7cf16a745418c991da53c08af4f14d7bb541..8292e761f58552a3efe3e103e0507d39bdd0e2f0 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 9eeffd23190936a98c44b93d7c24c6dfa587188e..d27e88169d952149107504e6522d7b098f5a5e40 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index dc829f3a19d21122830d140d7b8817fab7a88647..22d72b336925646fd43e6291c1236e6b33047b64 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 52a8f5c07f72e3d2b221371f0f9e40ad0639fd40..5abfb7abffad2c1495e56b123f708c1930bc8952 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 545d8c9ea547ecfef1f54ff79d16fa364dc48a57..40a78aacbb6fc7445d216a214c74fa80b12bd43a 100755 (executable)
@@ -1047,3 +1047,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 8c8cdfad3a40524986b28723e67b1f303b81f711..d4eb4c14f1b92ab4094856523c07fb52206e721f 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 9d93605104235fd9ae3622f54d5b70a52438827b..5ea02515e8a8db4b85f6b36823dc219e6a8b05af 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 88a12669e8828209ab667067ab4bdd0ce72ffe96..6aae2bd6847ac3a138aeb2b0d50a57b8fd016dd4 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 2d2476e9f2eacaf09f613073e4f3f75068a23527..93f0ff9f8a7d4a2ab63a5112d5c64659bdba05d7 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index b00dab936f8169e9b1c2162f7c26375509c67c85..d59a4f72eac544bd61e9a99e994c9ced7365011c 100755 (executable)
@@ -1045,3 +1045,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index b9f47c48b66978e0f88cb21ea836b7118ba44252..b1149dd3373ccc6799a55f4a780f9d3cb28c619e 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "스위치"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "슬라이더"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "마지막 항목"
index 927b0eda33db8da58d18eabdec1e7cfca80d3bb3..074bd3c8e5120c62a4096da53152bd53bc6e1e5f 100755 (executable)
@@ -1047,3 +1047,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index deb48d5b305c6ffb723ae2152240aefc610eabd5..91e207a842dc8e074a23a2e89faf5588d72f6605 100755 (executable)
@@ -1047,3 +1047,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 48f98f5d03ecbb1a64c2f701c18d5a38138fa6f3..9e72776f0d3bdcda1207a9cbfd40dcdad1afd4d4 100755 (executable)
@@ -1047,3 +1047,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 568ddd63727ae0ad44425e22364e06435a4fd47e..e2f4e5590a7c11be0ada988e61489167ba67d9e8 100755 (executable)
@@ -1047,3 +1047,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 50fdb6e2c2bdd8485c3dbbf0e428dfdad0cb2b10..30685f08fe2412403c5fe05e96dcef45ec4b1115 100755 (executable)
@@ -1047,3 +1047,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 31adbc40f0189926be2feefcd8fca5ca3cb2f1a7..4795c31e3a552760f59c84d05735076672dad3d3 100755 (executable)
@@ -1047,3 +1047,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 29af3693005796c46f1b8cb0cf5a0b034fb5a44b..f87821e729d0d71b8be3f08ec9a16fedc93b4889 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 5e2761c482963680654d402eedb0578fe184d773..c424a45532b56a0a37c16fbe638127708165b9b3 100755 (executable)
@@ -1047,3 +1047,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 85a269b369b2eccebbaacf46b0f1c110a6efae1d..a0dd675c5a86f09090532d6ddc17d8f99c87bfc4 100755 (executable)
@@ -1047,3 +1047,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 5236c690c29950e017e8fe0ad3de8c5e81d082b2..a68416695746942cc403213f3d8db99d42d95bfc 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index b2d9060193793c97b966be186d3cfcb190471236..b3b4f50c72149b89967574e289be39e41705f91e 100755 (executable)
@@ -1047,3 +1047,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 6852c017f0a643e624741bb68a9b013cca234941..ccaaa45aaebc488926231d3c01a398ecb34fd320 100755 (executable)
@@ -1047,3 +1047,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 7a9dc9228f7c9cb23c5e5ff7c2adaa9b29969858..a6e000f2164245e2fb39621356faf4c234583382 100755 (executable)
@@ -1047,3 +1047,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 4f9dd5c4fe60c7824ca31d7559577432fc8f61c9..ac95672fc3b4baf6bfb0d971b1f73ea9a297a15c 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 60e6408fd8fce67718f4be9fb305fe541a86864f..03fb448a301083af79e2176acffc9e21334c38e9 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 039ee8b4811729ead66ca41fe16a38914c24e549..5653463a36d38022dbe84b1982bc69c821770359 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 4eab49ed0afe43f906652f3f8597c0e2531ef68e..a178687251c109f9d01ad4e323675f9c2579c532 100755 (executable)
@@ -1046,3 +1046,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index b690c76155dfd7c6c28a628c63ad6116c72f2d05..8a66e2310c20805efe5dd7eda594591fb3eff9ce 100755 (executable)
@@ -1009,3 +1009,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 4696e1b2e2dbccaf0aed23a36170f3cff3092266..dd32900591ac88e5f343c5df3a3977a760befc45 100755 (executable)
@@ -1009,3 +1009,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 364ebd096c99a4dab10628c2b3a9cfbc2c901ba2..645d3afc24ffeb2b627b89fc8398cac15c4a13a2 100755 (executable)
@@ -1009,3 +1009,6 @@ msgstr "Switch"
 
 msgid "IDS_ACCS_TBOPT_SLIDER_TTS"
 msgstr "Slider"
+
+msgid "IDS_ACCS_OPT_LAST_ITEM_TTS"
+msgstr "Last item"
index 0b9e9b27558682bac5e923839f509581feaa171b..f1fc213a65b3d7d32589fa2acf4a0ab785fd9ffe 100644 (file)
@@ -364,10 +364,28 @@ end:
        }
 }
 
+static void _on_chain_end_read(FlatNaviContext *ctx, search_direction direction)
+{
+       // TODO: consider reading _("IDS_ACCS_OPT_FIRST_ITEM_TTS") for symmetry?
+       if (direction == SEARCH_FORWARD)
+               tw_speak(_("IDS_ACCS_OPT_LAST_ITEM_TTS"), EINA_TRUE);
+}
+
 static void _on_chain_end(FlatNaviContext *ctx, search_direction direction)
 {
        AtspiRole role = atspi_accessible_get_role(ctx->root, NULL);
 
+       if (role == ATSPI_ROLE_COMBO_BOX)
+               _on_chain_end_read(ctx, direction);
+
+       if (vc_get_sound_feedback())
+               smart_notification(FOCUS_CHAIN_END_NOTIFICATION_EVENT, 0, 0);
+}
+
+static void _on_chain_end_again(FlatNaviContext *ctx, search_direction direction)
+{
+       AtspiRole role = atspi_accessible_get_role(ctx->root, NULL);
+
        // The default is to loop over when the user makes a flick gesture again
        // after reaching the end of the focus chain, unless the current context
        // is a drop-down menu, in which case we try to close it instead.
@@ -394,13 +412,10 @@ static void _navigate_by_one(FlatNaviContext *ctx, search_direction direction)
                                                                "first item reached or failed");
 
                if (ctx->last_entry == (direction == SEARCH_FORWARD ? LAST_ENTRY_LAST : LAST_ENTRY_FIRST)) {
-                       _on_chain_end(ctx, direction);
+                       _on_chain_end_again(ctx, direction);
                }
                else {
-                       /* TODO Is it a proper place for sound generation? */
-                       if (vc_get_sound_feedback())
-                               smart_notification(FOCUS_CHAIN_END_NOTIFICATION_EVENT, 0, 0);
-
+                       _on_chain_end(ctx, direction);
                        ctx->last_entry = direction == SEARCH_FORWARD ? LAST_ENTRY_LAST : LAST_ENTRY_FIRST;
                }
                g_object_unref(ret);