okra pushed a commit to branch master.

http://git.enlightenment.org/apps/ephoto.git/commit/?id=7682ab5665ea54bfbb904e7092158f9d63ae7e7c

commit 7682ab5665ea54bfbb904e7092158f9d63ae7e7c
Author: Stephen okra Houston <smhousto...@gmail.com>
Date:   Wed Dec 9 16:54:45 2015 -0600

    Ephoto: Fix cropper math.
---
 src/bin/ephoto_cropper.c | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/src/bin/ephoto_cropper.c b/src/bin/ephoto_cropper.c
index cd9351c..ee00b64 100644
--- a/src/bin/ephoto_cropper.c
+++ b/src/bin/ephoto_cropper.c
@@ -29,7 +29,8 @@ _calculate_cropper_size(void *data, Evas_Object *obj 
EINA_UNUSED,
    int w, h, cw, ch, iw, ih, nw, nh;
    double scalew, scaleh;
 
-   evas_object_geometry_get(ec->layout, 0, 0, &w, &h);
+   edje_object_part_geometry_get(elm_layout_edje_get(ec->layout),
+       "ephoto.swallow.image", 0, 0, &w, &h);
    edje_object_part_geometry_get(elm_layout_edje_get(ec->layout),
        "ephoto.swallow.cropper", 0, 0, &cw, &ch);
    evas_object_image_size_get(elm_image_object_get(ec->image), &iw, &ih);
@@ -63,8 +64,10 @@ _cropper_changed_width(void *data, Evas_Object *obj 
EINA_UNUSED,
 
    mw = elm_slider_value_get(ec->cropw);
 
-   evas_object_geometry_get(ec->layout, &lx, 0, &lw, 0);
-   evas_object_geometry_get(ec->cropper, &cx, 0, &cw, 0);
+   edje_object_part_geometry_get(elm_layout_edje_get(ec->layout),
+       "ephoto.swallow.image", &lx, 0, &lw, 0);
+   edje_object_part_geometry_get(elm_layout_edje_get(ec->layout),
+       "ephoto.swallow.cropper", &cx, 0, &cw, 0);
    evas_object_image_size_get(elm_image_object_get(ec->image), &iw, 0);
 
    scalew = (double) mw / (double) iw;
@@ -113,8 +116,10 @@ _cropper_changed_height(void *data, Evas_Object *obj 
EINA_UNUSED,
 
    mh = elm_slider_value_get(ec->croph);
 
-   evas_object_geometry_get(ec->layout, 0, &ly, 0, &lh);
-   evas_object_geometry_get(ec->cropper, 0, &cy, 0, &ch);
+   edje_object_part_geometry_get(elm_layout_edje_get(ec->layout),
+       "ephoto.swallow.image", 0, &ly, 0, &lh);
+   edje_object_part_geometry_get(elm_layout_edje_get(ec->layout),
+       "ephoto.swallow.cropper", 0, &cy, 0, &ch);
    evas_object_image_size_get(elm_image_object_get(ec->image), 0, &ih);
 
    scaleh = (double) mh / (double) ih;
@@ -179,7 +184,7 @@ _apply_crop(void *data, Evas_Object *obj EINA_UNUSED,
    double scalex, scaley, scalew, scaleh;
    unsigned int *idata, *idata_new;
 
-   evas_object_geometry_get(ec->layout, &x, &y, &w, &h);
+   edje_object_part_geometry_get(edje, "ephoto.swallow.image", &x, &y, &w, &h);
    edje_object_part_geometry_get(edje, "ephoto.swallow.cropper", &cx, &cy, &cw,
        &ch);
    evas_object_image_size_get(elm_image_object_get(ec->image), &iw, &ih);
@@ -187,8 +192,8 @@ _apply_crop(void *data, Evas_Object *obj EINA_UNUSED,
    idata =
        evas_object_image_data_get(elm_image_object_get(ec->image), EINA_FALSE);
 
-   scalex = (double) cx / (double) w;
-   scaley = (double) cy / (double) h;
+   scalex = (double) (cx-x) / (double) w;
+   scaley = (double) (cy-y) / (double) h;
    scalew = (double) cw / (double) w;
    scaleh = (double) ch / (double) h;
 

-- 


Reply via email to