From fbda4434072617d6e43bfc2843625f5f328ecaee Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 19 Jun 2012 09:48:36 +0000 Subject: [PATCH] fix crazy horizontal scrollbar flickering and resizing in file selector for efm SVN revision: 72463 --- data/themes/default.edc | 2 +- src/bin/e_fm.c | 52 ++++++++++++++++++----------------------- 2 files changed, 24 insertions(+), 30 deletions(-) diff --git a/data/themes/default.edc b/data/themes/default.edc index 6dc5315a7..3672a788a 100644 --- a/data/themes/default.edc +++ b/data/themes/default.edc @@ -22892,7 +22892,7 @@ collections { text { font: "Sans"; size: 10; - min: 0 1; + min: 1 1; align: 0.0 0.5; text_class: "ilist_item"; } diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c index 2f1775354..bea018d59 100644 --- a/src/bin/e_fm.c +++ b/src/bin/e_fm.c @@ -3939,14 +3939,11 @@ _e_fm2_icons_place_list(E_Fm2_Smart_Data *sd) ic->w = ic->min_w; y += ic->h; ic->odd = (i & 0x01); - if ((ic->x + ic->w) > sd->max.w) sd->max.w = ic->x + ic->w; + if ((ic->w != sd->w) && ((ic->x + ic->w) > sd->max.w)) sd->max.w = ic->x + ic->w; + else if (ic->min_w > sd->max.w) sd->max.w = ic->min_w; if ((ic->y + ic->h) > sd->max.h) sd->max.h = ic->y + ic->h; i++; } - EINA_LIST_FOREACH(sd->icons, l, ic) - { - ic->w = sd->max.w; - } } static void @@ -4462,35 +4459,32 @@ _e_fm2_icon_fill(E_Fm2_Icon *ic, E_Fm2_Finfo *finf) break; case E_FM2_VIEW_MODE_LIST: - { - obj = ic->sd->tmp.obj; - if (!obj) - { - obj = edje_object_add(evas_object_evas_get(ic->sd->obj)); + obj = ic->sd->tmp.obj; + if (!obj) + { + obj = edje_object_add(evas_object_evas_get(ic->sd->obj)); // vairable sized list items are pretty usless - ignore. // if (ic->sd->config->icon.fixed.w) - _e_fm2_theme_edje_object_set(ic->sd, obj, - "base/theme/fileman", - "list/fixed"); + _e_fm2_theme_edje_object_set(ic->sd, obj, + "base/theme/fileman", + "list/fixed"); // else // _e_fm2_theme_edje_object_set(ic->sd, obj, "base/theme/fileman", // "list/variable"); - ic->sd->tmp.obj = obj; - } - _e_fm2_icon_label_set(ic, obj); - obj2 = ic->sd->tmp.obj2; - if (!obj2) - { - obj2 = evas_object_rectangle_add(evas_object_evas_get(ic->sd->obj)); - ic->sd->tmp.obj2 = obj2; - } - edje_extern_object_min_size_set(obj2, ic->sd->config->icon.list.w, ic->sd->config->icon.list.h); - edje_extern_object_max_size_set(obj2, ic->sd->config->icon.list.w, ic->sd->config->icon.list.h); - edje_object_part_swallow(obj, "e.swallow.icon", obj2); - edje_object_size_min_calc(obj, &mw, &mh); - } - if (mw < ic->sd->w) ic->w = ic->sd->w; - else ic->w = mw; + ic->sd->tmp.obj = obj; + } + _e_fm2_icon_label_set(ic, obj); + obj2 = ic->sd->tmp.obj2; + if (!obj2) + { + obj2 = evas_object_rectangle_add(evas_object_evas_get(ic->sd->obj)); + ic->sd->tmp.obj2 = obj2; + } + edje_extern_object_min_size_set(obj2, ic->sd->config->icon.list.w, ic->sd->config->icon.list.h); + edje_extern_object_max_size_set(obj2, ic->sd->config->icon.list.w, ic->sd->config->icon.list.h); + edje_object_part_swallow(obj, "e.swallow.icon", obj2); + edje_object_size_min_calc(obj, &mw, &mh); + ic->w = mw; ic->h = mh; ic->min_w = mw; ic->min_h = mh;