Ephoto: Keep scale on zoom in as well.

This commit is contained in:
Stephen Houston 2015-02-20 16:12:59 -06:00
parent 6dea4f6662
commit 7175e45d59
1 changed files with 20 additions and 10 deletions

View File

@ -8,7 +8,7 @@ collections {
movetype = getarg(2);
cox = getarg(3);
coy = getarg(4);
get_geometry(PART:"ephoto.swallow.image", ix, iy, iw, ih);
get_geometry(PART:"ephoto.swallow.cropper", cx, cy, cw, ch);
@ -95,17 +95,27 @@ collections {
set_state_val(PART:"ephoto.swallow.cropper", STATE_REL2_OFFSET, ppox, ppoy);
}
if (movetype == 9) {
new ppox, ppoy;
get_state_val(PART:"ephoto.swallow.cropper", STATE_REL1_OFFSET, pox, poy);
if (cx < ix)
pox += ix-cx;
if (cx+cw > ix+iw)
pox += (ix+iw)-(cx+cw);
if (cy < iy)
poy += iy-cy;
if (cy+ch > iy+ih)
poy += (iy+ih)-(cy+ch);
get_state_val(PART:"ephoto.swallow.cropper", STATE_REL2_OFFSET, ppox, ppoy);
if (cx < ix) {
pox += ix-cx;
ppox += ix-cx;
}
if (cx+cw > ix+iw) {
pox += (ix+iw)-(cx+cw);
ppox += (ix+iw)-(cx+cw);
}
if (cy < iy) {
poy += iy-cy;
ppoy += iy-cy;
}
if (cy+ch > iy+ih) {
poy += (iy+ih)-(cy+ch);
ppoy += (iy+ih)-(cy+ch);
}
set_state_val(PART:"ephoto.swallow.cropper", STATE_REL1_OFFSET, pox, poy);
set_state_val(PART:"ephoto.swallow.cropper", STATE_REL2_OFFSET, pox, poy);
set_state_val(PART:"ephoto.swallow.cropper", STATE_REL2_OFFSET, ppox, ppoy);
}
set_state(PART:"ephoto.swallow.cropper", "custom", 0.0);
}