diff --git a/legacy/elementary/ChangeLog b/legacy/elementary/ChangeLog index 059e2aad79..bb3ce4e63d 100644 --- a/legacy/elementary/ChangeLog +++ b/legacy/elementary/ChangeLog @@ -902,3 +902,7 @@ 2013-01-13 Daniel Juyung Seo (SeoZ) * Added "highlighted" and "unhighlighted" signals to list, genlist, and gengrid. + +2013-01-16 Shilpa Singh , Rajeev Ranjan + + * Fix "changed" signal being sent twice in case of toggle style when check is clicked. diff --git a/legacy/elementary/NEWS b/legacy/elementary/NEWS index daf20284b9..95c4beecf8 100644 --- a/legacy/elementary/NEWS +++ b/legacy/elementary/NEWS @@ -121,6 +121,7 @@ Fixes: * Fix the usage of the checks in the fileselector test 2. * Added the min_year and max_year in the standard profile config. * Fix omitting signal emission when customized text parts change the text. + * Fix "changed" signal being sent twice in case of toggle style when check is clicked. Removals: diff --git a/legacy/elementary/data/themes/widgets/check.edc b/legacy/elementary/data/themes/widgets/check.edc index f6b25d6156..6ba52b50b9 100644 --- a/legacy/elementary/data/themes/widgets/check.edc +++ b/legacy/elementary/data/themes/widgets/check.edc @@ -576,29 +576,25 @@ group { name: "elm/check/base/toggle"; set_int(is_drag, 0); } } - program { name: "drag_end"; + program { name: "drag_end"; signal: "mouse,up,1"; source: "button"; script { new Float:dx, Float:dy; get_drag(PART:"button", dx, dy); - if (dx > 0.5) - { - set_drag(PART:"button", 1.0, 0.0); + if (get_int(is_drag)) { + if (dx > 0.5) + set_drag(PART:"button", 1.0, 0.0); + else + set_drag(PART:"button", 0.0, 0.0); + if (((get_int(is_rtl) == 1) && (dx <= 0.5)) || + (get_int(is_rtl) == 0) && (dx > 0.5)) + emit("elm,action,check,on", ""); + else + emit("elm,action,check,off", ""); + set_int(was_drag, 1); + set_int(is_drag, 0); } - else - { - set_drag(PART:"button", 0.0, 0.0); - } - if (((get_int(is_rtl) == 1) && (dx <= 0.5)) || - (get_int(is_rtl) == 0) && (dx > 0.5)) { - emit("elm,action,check,on", ""); - } - else { - emit("elm,action,check,off", ""); - } - set_int(was_drag, get_int(is_drag)); - set_int(is_drag, 0); } } program { name: "check_on";