Elm entry: Fixed entry min size calculations.
authorTom Hacohen <tom@stosb.com>
Tue, 6 Dec 2011 15:52:11 +0000 (15:52 +0000)
committerTom Hacohen <tom@stosb.com>
Tue, 6 Dec 2011 15:52:11 +0000 (15:52 +0000)
I dunno how, why and by who it got broken, but it should be working now.
If you have any issues, let me know.

SVN revision: 65960

src/lib/elm_entry.c

index 21fdfa1..0dcedd1 100644 (file)
@@ -602,8 +602,6 @@ _elm_deferred_recalc_job(void *data)
    evas_object_geometry_get(wd->ent, NULL, NULL, &resw, NULL);
    edje_object_size_min_restricted_calc(wd->ent, &minw, &minh, resw, 0);
    elm_coords_finger_size_adjust(1, &minw, 1, &minh);
-   wd->entmw = minw;
-   wd->entmh = minh;
    /* This is a hack to workaround the way min size hints are treated.
     * If the minimum width is smaller than the restricted width, it means
     * the mininmum doesn't matter. */
@@ -614,6 +612,9 @@ _elm_deferred_recalc_job(void *data)
         minw = ominw;
      }
 
+   wd->entmw = minw;
+   wd->entmh = minh;
+
    elm_coords_finger_size_adjust(1, &fw, 1, &fh);
    if (wd->scroll)
      {
@@ -685,9 +686,18 @@ _sizing_eval(Evas_Object *obj)
                  &vmw, &vmh);
              elm_smart_scroller_child_viewport_size_get(wd->scroller, &vw, &vh);
              edje_object_size_min_restricted_calc(wd->ent, &minw, &minh, vw, 0);
+             elm_coords_finger_size_adjust(1, &minw, 1, &minh);
+             /* This is a hack to workaround the way min size hints are treated.
+              * If the minimum width is smaller than the restricted width, it means
+              * the mininmum doesn't matter. */
+             if (minw <= vw)
+               {
+                  Evas_Coord ominw = -1;
+                  evas_object_size_hint_min_get(wd->ent, &ominw, NULL);
+                  minw = ominw;
+               }
              wd->entmw = minw;
              wd->entmh = minh;
-             elm_coords_finger_size_adjust(1, &minw, 1, &minh);
 
              if ((minw > 0) && (vw < minw)) vw = minw;
              if (minh > vh) vh = minh;