discomfitor pushed a commit to branch enlightenment-0.18.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=20b00d29a553e48189fcd14628962247c6a861d6

commit 20b00d29a553e48189fcd14628962247c6a861d6
Author: Mike Blumenkrantz <[email protected]>
Date:   Wed May 7 19:39:44 2014 -0400

    bugfix: reset efm icon image/text/state after applying even/odd
    
    fix T1222
---
 src/bin/e_fm.c | 24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c
index 8356366..3963450 100644
--- a/src/bin/e_fm.c
+++ b/src/bin/e_fm.c
@@ -8400,6 +8400,13 @@ _e_fm2_obj_icons_place(E_Fm2_Smart_Data *sd)
 
              EINA_LIST_FOREACH(rg->list, ll, ic)
                {
+                  const char *th[] =
+                  {
+                   "list/fixed",
+                   "list_odd/fixed",
+                  };
+                  Evas_Object *prev;
+
                   if (!ic->realized) continue;
                   if (!_e_fm2_icon_visible(ic))
                     {
@@ -8423,14 +8430,15 @@ _e_fm2_obj_icons_place(E_Fm2_Smart_Data *sd)
                    * 6 if icon is inserted into current viewport during 4.5, 
even/odd for surrounding items
                    *   will always be wrong (ticket #1579)
                    */
-                  if (ic->odd)
-                    _e_fm2_theme_edje_object_set(ic->sd, ic->obj,
-                                                 "base/theme/widgets",
-                                                 "list_odd/fixed");
-                  else
-                    _e_fm2_theme_edje_object_set(ic->sd, ic->obj,
-                                                 "base/theme/widgets",
-                                                 "list/fixed");
+
+                   prev = edje_object_part_swallow_get(ic->obj, 
"e.swallow.icon");
+                   _e_fm2_theme_edje_object_set(ic->sd, ic->obj,
+                                                "base/theme/widgets",
+                                                th[ic->odd]);
+                   edje_object_part_swallow(ic->obj, "e.swallow.icon", prev);
+                   _e_fm2_icon_label_set(ic, ic->obj);
+                   if (ic->selected)
+                     edje_object_signal_emit(ic->obj, "e,state,selected", "e");
                }
           }
      }

-- 


Reply via email to