discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=49b9a2ea2aa3d0b3434c9feaf6ee6c0e9c7f6755

commit 49b9a2ea2aa3d0b3434c9feaf6ee6c0e9c7f6755
Author: Mike Blumenkrantz <zm...@samsung.com>
Date:   Fri Jan 17 18:27:55 2014 -0500

    break out ibar menu population into separate function
---
 src/modules/ibar/e_mod_main.c | 67 ++++++++++++++++++++++++-------------------
 1 file changed, 38 insertions(+), 29 deletions(-)

diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c
index 8b0d6a4..89a2c2a 100644
--- a/src/modules/ibar/e_mod_main.c
+++ b/src/modules/ibar/e_mod_main.c
@@ -1124,10 +1124,45 @@ _ibar_icon_menu_mouse_out(void *data, Evas *e 
EINA_UNUSED, Evas_Object *obj EINA
      ic->hide_timer = ecore_timer_add(0.5, _ibar_cb_out_hide_delay, ic);
 }
 
+static Eina_Bool
+_ibar_icon_menu_client_add(IBar_Icon *ic, E_Client *ec)
+{
+   Evas_Object *o, *it, *img;
+   Eina_Stringshare *txt;
+   int w, h;
+   
+   if (ec->netwm.state.skip_taskbar) return EINA_FALSE;
+   o = ic->menu->o_bg;
+   it = edje_object_add(e_comp_get(ec)->evas);
+   e_comp_object_util_del_list_append(ic->menu->comp_object, it);
+   e_theme_edje_object_set(it, "base/theme/modules/ibar",
+                           "e/modules/ibar/menu/item");
+   img = e_comp_object_util_mirror_add(ec->frame);
+   evas_object_event_callback_add(img, EVAS_CALLBACK_DEL,
+                                  _ibar_cb_icon_menu_img_del, it);
+   txt = e_client_name_get(ec);
+   w = ec->client.w;
+   h = ec->client.h;
+   e_comp_object_util_del_list_append(ic->menu->comp_object, img);
+   evas_object_show(img);
+   edje_extern_object_aspect_set(img, EDJE_ASPECT_CONTROL_BOTH, w, h);
+   edje_object_part_swallow(it, "e.swallow.icon", img);
+   edje_object_part_text_set(it, "e.text.title", txt);
+   edje_object_calc_force(it);
+   edje_object_size_min_calc(it, &w, &h);
+   edje_extern_object_min_size_set(it, w, h);
+   evas_object_size_hint_min_set(it, w, h);
+   evas_object_show(it);
+   evas_object_event_callback_add(it, EVAS_CALLBACK_MOUSE_UP, 
_ibar_cb_icon_menu_mouse_up, ec);
+   evas_object_data_set(it, "ibar_icon", ic);
+   edje_object_part_box_append(o, "e.box", it);
+   return EINA_TRUE;
+}
+
 static void
 _ibar_icon_menu(IBar_Icon *ic, Eina_Bool grab)
 {
-   Evas_Object *o, *it;
+   Evas_Object *o;
    Eina_List *l;
    E_Exec_Instance *exe;
    Evas *e;
@@ -1151,39 +1186,13 @@ _ibar_icon_menu(IBar_Icon *ic, Eina_Bool grab)
    evas_object_layer_set(ic->menu->comp_object, E_LAYER_POPUP);
    EINA_LIST_FOREACH(ic->exes, l, exe)
      {
-        Evas_Object *img;
-        const char *txt;
         Eina_List *ll;
         E_Client *ec;
 
         EINA_LIST_FOREACH(exe->clients, ll, ec)
           {
-             if (ec->netwm.state.skip_taskbar) continue;
-             it = edje_object_add(e);
-             e_comp_object_util_del_list_append(ic->menu->comp_object, it);
-             e_theme_edje_object_set(it, "base/theme/modules/ibar",
-                                     "e/modules/ibar/menu/item");
-             img = e_comp_object_util_mirror_add(ec->frame);
-             evas_object_event_callback_add(img, EVAS_CALLBACK_DEL,
-                                            _ibar_cb_icon_menu_img_del, it);
-             txt = e_client_name_get(ec);
-             w = ec->client.w;
-             h = ec->client.h;
-             e_comp_object_util_del_list_append(ic->menu->comp_object, img);
-             evas_object_show(img);
-             edje_extern_object_aspect_set(img, EDJE_ASPECT_CONTROL_BOTH, w, 
h);
-             edje_object_part_swallow(it, "e.swallow.icon", img);
-             edje_object_part_text_set(it, "e.text.title", txt);
-             edje_object_calc_force(it);
-             edje_object_size_min_calc(it, &w, &h);
-             edje_extern_object_min_size_set(it, w, h);
-             evas_object_size_hint_min_set(it, w, h);
-             evas_object_show(it);
-             evas_object_event_callback_add(it, EVAS_CALLBACK_MOUSE_UP,
-               _ibar_cb_icon_menu_mouse_up, ec);
-             evas_object_data_set(it, "ibar_icon", ic);
-             edje_object_part_box_append(o, "e.box", it);
-             empty = EINA_FALSE;
+             if (_ibar_icon_menu_client_add(ic, ec))
+               empty = EINA_FALSE;
           }
      }
    if (empty)

-- 


Reply via email to