MAGIC_CHECK(e, Evas, MAGIC_EVAS);
return 0;
MAGIC_CHECK_END();
- return e->viewport.x + (((Evas_Coord)x * e->viewport.w) / (Evas_Coord)e->output.w);
+ if (e->output.w == e->viewport.w) return e->viewport.x + x;
+ return (long long)e->viewport.x + (((long long)x * (long long)e->viewport.w) / (long long)e->output.w);
}
/**
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
return 0;
MAGIC_CHECK_END();
- return e->viewport.y + (((Evas_Coord)y * e->viewport.h) / (Evas_Coord)e->output.h);
+ if (e->output.h == e->viewport.h) return e->viewport.y + y;
+ return (long long)e->viewport.y + (((long long)y * (long long)e->viewport.h) / (long long)e->output.h);
}
/**
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
return 0;
MAGIC_CHECK_END();
- return (int)(((x - e->viewport.x) * (Evas_Coord)e->output.w) / e->viewport.w);
+ if (e->output.w == e->viewport.w) return x - e->viewport.x;
+ return (int)((((long long)x - (long long)e->viewport.x) * (long long)e->output.w) / (long long)e->viewport.w);
}
/**
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
return 0;
MAGIC_CHECK_END();
- return (int)(((y - e->viewport.y) * (Evas_Coord)e->output.h) / e->viewport.h);
+ if (e->output.h == e->viewport.h) return y - e->viewport.y;
+ return (int)((((long long)y - (long long)e->viewport.y) * (long long)e->output.h) / (long long)e->viewport.h);
}
/**