clicking a toolbar item is now a toggle:
authordiscomfitor <discomfitor@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Mon, 12 Sep 2011 02:05:30 +0000 (02:05 +0000)
committerMike McCormack <mj.mccormack@samsung.com>
Fri, 11 Nov 2011 05:28:32 +0000 (14:28 +0900)
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

src/lib/elm_toolbar.c

index b06d801..a6621da 100644 (file)
@@ -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,