From: discomfitor Date: Mon, 12 Sep 2011 02:05:30 +0000 (+0000) Subject: clicking a toolbar item is now a toggle: X-Git-Tag: REBUILDD-ARMEL-68185~24 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b03755d6145051ef59512eb291b1320acc26ef9a;p=framework%2Fuifw%2Felementary.git clicking a toolbar item is now a toggle: clicking an unselected item -> item is selected clicking a selected item -> item is unselected git-svn-id: https://svn.enlightenment.org/svn/e/trunk/elementary@63333 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- diff --git a/src/lib/elm_toolbar.c b/src/lib/elm_toolbar.c index b06d801..a6621da 100644 --- a/src/lib/elm_toolbar.c +++ b/src/lib/elm_toolbar.c @@ -138,23 +138,29 @@ _item_select(Elm_Toolbar_Item *it) Elm_Toolbar_Item *it2; Widget_Data *wd = elm_widget_data_get(WIDGET(it)); Evas_Object *obj2; + Eina_Bool sel; if (!wd) return; - if ((it->selected) || (it->disabled) || (it->separator)) return; + if ((it->disabled) || (it->separator)) return; + sel = it->selected; if (!wd->no_select) { - it2 = elm_toolbar_selected_item_get(WIDGET(it)); - _item_unselect(it2); - - it->selected = EINA_TRUE; - wd->selected_item = it; - edje_object_signal_emit(VIEW(it), "elm,state,selected", "elm"); - elm_widget_signal_emit(it->icon, "elm,state,selected", "elm"); - _item_show(it); + if (sel) _item_unselect(it); + else + { + it2 = elm_toolbar_selected_item_get(WIDGET(it)); + _item_unselect(it2); + + it->selected = EINA_TRUE; + wd->selected_item = it; + edje_object_signal_emit(VIEW(it), "elm,state,selected", "elm"); + elm_widget_signal_emit(it->icon, "elm,state,selected", "elm"); + _item_show(it); + } } obj2 = WIDGET(it); - if (it->menu) + if (it->menu && (!sel)) { evas_object_show(it->o_menu); evas_object_event_callback_add(VIEW(it), EVAS_CALLBACK_RESIZE,