app/nav_window.c
Wed Nov 10 23:03:33 GMT 1999 Andy Thomas <alt@gimp.org> * app/nav_window.c Nav preview now really does work with !sqr pixels & dot_for_dot off... Nav preview for small images fixed.
This commit is contained in:

committed by
Andy Thomas

parent
60e371472d
commit
fda8a6897b
@ -1,3 +1,11 @@
|
|||||||
|
Wed Nov 10 23:03:33 GMT 1999 Andy Thomas <alt@gimp.org>
|
||||||
|
|
||||||
|
* app/nav_window.c
|
||||||
|
|
||||||
|
Nav preview now really does work with !sqr pixels & dot_for_dot
|
||||||
|
off...
|
||||||
|
Nav preview for small images fixed.
|
||||||
|
|
||||||
Wed Nov 10 11:16:54 MET 1999 Sven Neumann <sven@gimp.org>
|
Wed Nov 10 11:16:54 MET 1999 Sven Neumann <sven@gimp.org>
|
||||||
|
|
||||||
* plug-ins/script-fu/scripts/fade-outline.scm: updated version
|
* plug-ins/script-fu/scripts/fade-outline.scm: updated version
|
||||||
|
@ -163,15 +163,11 @@ nav_window_disp_area (NavWinData *iwd,
|
|||||||
newwidth = gimage->width;
|
newwidth = gimage->width;
|
||||||
newheight = gimage->height;
|
newheight = gimage->height;
|
||||||
|
|
||||||
if (!gdisp->dot_for_dot)
|
if(!gdisp->dot_for_dot)
|
||||||
{
|
{
|
||||||
gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
|
newwidth = (newwidth * gdisp->gimage->yresolution)/ gdisp->gimage->xresolution;
|
||||||
newwidth = (gdouble)newwidth * unit_factor / gdisp->gimage->xresolution + 0.5;
|
iwd->dispx = ((gdisp->offset_x * gdisp->gimage->yresolution * iwd->ratio)/ (gdisp->gimage->xresolution * xratio)) + 0.5; /* here */
|
||||||
newheight = (gdouble)newheight * unit_factor / gdisp->gimage->yresolution + 0.5;
|
iwd->dispwidth = ((gdisp->disp_width * gdisp->gimage->yresolution * iwd->ratio)/ (gdisp->gimage->xresolution * xratio)) + 0.5; /* here */
|
||||||
iwd->dispx = (gdouble)iwd->dispx * unit_factor / gdisp->gimage->xresolution + 0.5;
|
|
||||||
iwd->dispy = (gdouble)iwd->dispy * unit_factor / gdisp->gimage->yresolution + 0.5;
|
|
||||||
iwd->dispwidth = (gdouble)iwd->dispwidth * unit_factor / gdisp->gimage->xresolution + 0.5;
|
|
||||||
iwd->dispheight = (gdouble)iwd->dispheight * unit_factor / gdisp->gimage->yresolution + 0.5;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if((iwd->imagewidth > 0 && newwidth != iwd->imagewidth) ||
|
if((iwd->imagewidth > 0 && newwidth != iwd->imagewidth) ||
|
||||||
@ -280,15 +276,18 @@ set_size_data (NavWinData *iwd)
|
|||||||
sel_width = gimage->width;
|
sel_width = gimage->width;
|
||||||
sel_height = gimage->height;
|
sel_height = gimage->height;
|
||||||
|
|
||||||
|
if(!gdisp->dot_for_dot)
|
||||||
|
sel_width = (sel_width * gdisp->gimage->yresolution)/ gdisp->gimage->xresolution;
|
||||||
|
|
||||||
if (sel_width > sel_height) {
|
if (sel_width > sel_height) {
|
||||||
pwidth = MIN(sel_width, iwd->nav_preview_width);
|
pwidth = iwd->nav_preview_width;
|
||||||
/* pheight = sel_height * pwidth / sel_width; */
|
/* pheight = sel_height * pwidth / sel_width; */
|
||||||
iwd->ratio = (gdouble)pwidth / ((gdouble)sel_width);
|
iwd->ratio = (gdouble)pwidth / ((gdouble)sel_width);
|
||||||
pheight = sel_height * iwd->ratio + 0.5;
|
pheight = sel_height * iwd->ratio + 0.5;
|
||||||
iwd->ratio = (gdouble)pheight/(gdouble)sel_height;
|
iwd->ratio = (gdouble)pheight/(gdouble)sel_height;
|
||||||
pwidth = sel_width * iwd->ratio + 0.5;
|
pwidth = sel_width * iwd->ratio + 0.5;
|
||||||
} else {
|
} else {
|
||||||
pheight = MIN(sel_height, iwd->nav_preview_height);
|
pheight = iwd->nav_preview_height;
|
||||||
/* pwidth = sel_width * pheight / sel_height; */
|
/* pwidth = sel_width * pheight / sel_height; */
|
||||||
iwd->ratio = (gdouble)pheight / ((gdouble)sel_height);
|
iwd->ratio = (gdouble)pheight / ((gdouble)sel_height);
|
||||||
pwidth = sel_width * iwd->ratio + 0.5;
|
pwidth = sel_width * iwd->ratio + 0.5;
|
||||||
@ -296,17 +295,8 @@ set_size_data (NavWinData *iwd)
|
|||||||
pheight = sel_height * iwd->ratio + 0.5;
|
pheight = sel_height * iwd->ratio + 0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gdisp->dot_for_dot)
|
iwd->pwidth = pwidth;
|
||||||
{
|
iwd->pheight = pheight;
|
||||||
iwd->pwidth = pwidth;
|
|
||||||
iwd->pheight = pheight;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
|
|
||||||
iwd->pwidth = ((gdouble)pwidth * unit_factor)/(gdisp->gimage->xresolution);
|
|
||||||
iwd->pheight = ((gdouble)pheight * unit_factor)/(gdisp->gimage->yresolution);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -387,18 +377,17 @@ update_real_view (NavWinData *iwd,
|
|||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
xpnt = (gint)(((gdouble)(tx)*xratio)/iwd->ratio);
|
xpnt = (gint)(((gdouble)(tx)*xratio)/iwd->ratio+0.5);
|
||||||
|
|
||||||
if((ty + iwd->dispheight) >= iwd->pheight)
|
if((ty + iwd->dispheight) >= iwd->pheight)
|
||||||
ty = iwd->pheight; /* Same comment as for xpnt above. */
|
ty = iwd->pheight; /* Same comment as for xpnt above. */
|
||||||
|
|
||||||
ypnt = (gint)(((gdouble)(ty)*yratio)/iwd->ratio);
|
ypnt = (gint)(((gdouble)(ty)*yratio)/iwd->ratio+0.5);
|
||||||
|
|
||||||
if (!gdisp->dot_for_dot)
|
if (!gdisp->dot_for_dot) /* here */
|
||||||
{
|
{
|
||||||
gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
|
gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
|
||||||
xpnt = ((gdouble)xpnt * gdisp->gimage->xresolution) / unit_factor + 0.5;
|
xpnt = ((gdouble)xpnt * gdisp->gimage->xresolution) / gdisp->gimage->yresolution + 0.5;
|
||||||
ypnt = ((gdouble)ypnt * gdisp->gimage->yresolution) / unit_factor + 0.5;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
xoffset = xpnt - gdisp->offset_x;
|
xoffset = xpnt - gdisp->offset_x;
|
||||||
@ -439,11 +428,25 @@ nav_window_update_preview (NavWinData *iwd)
|
|||||||
* gimp_image_construct_composite_preview() can't cope with
|
* gimp_image_construct_composite_preview() can't cope with
|
||||||
* dot_for_dot not been set.
|
* dot_for_dot not been set.
|
||||||
*/
|
*/
|
||||||
if (!gdisp->dot_for_dot)
|
if (!gdisp->dot_for_dot) /* ALT */
|
||||||
{
|
{
|
||||||
gdouble unit_factor = gimp_unit_get_factor (gimage->unit);
|
gint sel_width = gimage->width;
|
||||||
pwidth = ((gdouble)iwd->pwidth * (gimage->xresolution))/(unit_factor)+0.5;
|
gint sel_height = gimage->height;
|
||||||
pheight = ((gdouble)iwd->pheight * (gimage->yresolution))/(unit_factor)+0.5;
|
gdouble tratio;
|
||||||
|
|
||||||
|
if (sel_width > sel_height) {
|
||||||
|
pwidth = iwd->nav_preview_width;
|
||||||
|
tratio = (gdouble)pwidth / ((gdouble)sel_width);
|
||||||
|
pheight = sel_height * tratio + 0.5;
|
||||||
|
tratio = (gdouble)pheight/(gdouble)sel_height;
|
||||||
|
pwidth = sel_width * tratio + 0.5;
|
||||||
|
} else {
|
||||||
|
pheight = iwd->nav_preview_height;
|
||||||
|
tratio = (gdouble)pheight / ((gdouble)sel_height);
|
||||||
|
pwidth = sel_width * tratio + 0.5;
|
||||||
|
tratio = (gdouble)pwidth/(gdouble)sel_width;
|
||||||
|
pheight = sel_height * tratio + 0.5;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
preview_buf = gimp_image_construct_composite_preview (gimage,
|
preview_buf = gimp_image_construct_composite_preview (gimage,
|
||||||
|
@ -163,15 +163,11 @@ nav_window_disp_area (NavWinData *iwd,
|
|||||||
newwidth = gimage->width;
|
newwidth = gimage->width;
|
||||||
newheight = gimage->height;
|
newheight = gimage->height;
|
||||||
|
|
||||||
if (!gdisp->dot_for_dot)
|
if(!gdisp->dot_for_dot)
|
||||||
{
|
{
|
||||||
gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
|
newwidth = (newwidth * gdisp->gimage->yresolution)/ gdisp->gimage->xresolution;
|
||||||
newwidth = (gdouble)newwidth * unit_factor / gdisp->gimage->xresolution + 0.5;
|
iwd->dispx = ((gdisp->offset_x * gdisp->gimage->yresolution * iwd->ratio)/ (gdisp->gimage->xresolution * xratio)) + 0.5; /* here */
|
||||||
newheight = (gdouble)newheight * unit_factor / gdisp->gimage->yresolution + 0.5;
|
iwd->dispwidth = ((gdisp->disp_width * gdisp->gimage->yresolution * iwd->ratio)/ (gdisp->gimage->xresolution * xratio)) + 0.5; /* here */
|
||||||
iwd->dispx = (gdouble)iwd->dispx * unit_factor / gdisp->gimage->xresolution + 0.5;
|
|
||||||
iwd->dispy = (gdouble)iwd->dispy * unit_factor / gdisp->gimage->yresolution + 0.5;
|
|
||||||
iwd->dispwidth = (gdouble)iwd->dispwidth * unit_factor / gdisp->gimage->xresolution + 0.5;
|
|
||||||
iwd->dispheight = (gdouble)iwd->dispheight * unit_factor / gdisp->gimage->yresolution + 0.5;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if((iwd->imagewidth > 0 && newwidth != iwd->imagewidth) ||
|
if((iwd->imagewidth > 0 && newwidth != iwd->imagewidth) ||
|
||||||
@ -280,15 +276,18 @@ set_size_data (NavWinData *iwd)
|
|||||||
sel_width = gimage->width;
|
sel_width = gimage->width;
|
||||||
sel_height = gimage->height;
|
sel_height = gimage->height;
|
||||||
|
|
||||||
|
if(!gdisp->dot_for_dot)
|
||||||
|
sel_width = (sel_width * gdisp->gimage->yresolution)/ gdisp->gimage->xresolution;
|
||||||
|
|
||||||
if (sel_width > sel_height) {
|
if (sel_width > sel_height) {
|
||||||
pwidth = MIN(sel_width, iwd->nav_preview_width);
|
pwidth = iwd->nav_preview_width;
|
||||||
/* pheight = sel_height * pwidth / sel_width; */
|
/* pheight = sel_height * pwidth / sel_width; */
|
||||||
iwd->ratio = (gdouble)pwidth / ((gdouble)sel_width);
|
iwd->ratio = (gdouble)pwidth / ((gdouble)sel_width);
|
||||||
pheight = sel_height * iwd->ratio + 0.5;
|
pheight = sel_height * iwd->ratio + 0.5;
|
||||||
iwd->ratio = (gdouble)pheight/(gdouble)sel_height;
|
iwd->ratio = (gdouble)pheight/(gdouble)sel_height;
|
||||||
pwidth = sel_width * iwd->ratio + 0.5;
|
pwidth = sel_width * iwd->ratio + 0.5;
|
||||||
} else {
|
} else {
|
||||||
pheight = MIN(sel_height, iwd->nav_preview_height);
|
pheight = iwd->nav_preview_height;
|
||||||
/* pwidth = sel_width * pheight / sel_height; */
|
/* pwidth = sel_width * pheight / sel_height; */
|
||||||
iwd->ratio = (gdouble)pheight / ((gdouble)sel_height);
|
iwd->ratio = (gdouble)pheight / ((gdouble)sel_height);
|
||||||
pwidth = sel_width * iwd->ratio + 0.5;
|
pwidth = sel_width * iwd->ratio + 0.5;
|
||||||
@ -296,17 +295,8 @@ set_size_data (NavWinData *iwd)
|
|||||||
pheight = sel_height * iwd->ratio + 0.5;
|
pheight = sel_height * iwd->ratio + 0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gdisp->dot_for_dot)
|
iwd->pwidth = pwidth;
|
||||||
{
|
iwd->pheight = pheight;
|
||||||
iwd->pwidth = pwidth;
|
|
||||||
iwd->pheight = pheight;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
|
|
||||||
iwd->pwidth = ((gdouble)pwidth * unit_factor)/(gdisp->gimage->xresolution);
|
|
||||||
iwd->pheight = ((gdouble)pheight * unit_factor)/(gdisp->gimage->yresolution);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -387,18 +377,17 @@ update_real_view (NavWinData *iwd,
|
|||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
xpnt = (gint)(((gdouble)(tx)*xratio)/iwd->ratio);
|
xpnt = (gint)(((gdouble)(tx)*xratio)/iwd->ratio+0.5);
|
||||||
|
|
||||||
if((ty + iwd->dispheight) >= iwd->pheight)
|
if((ty + iwd->dispheight) >= iwd->pheight)
|
||||||
ty = iwd->pheight; /* Same comment as for xpnt above. */
|
ty = iwd->pheight; /* Same comment as for xpnt above. */
|
||||||
|
|
||||||
ypnt = (gint)(((gdouble)(ty)*yratio)/iwd->ratio);
|
ypnt = (gint)(((gdouble)(ty)*yratio)/iwd->ratio+0.5);
|
||||||
|
|
||||||
if (!gdisp->dot_for_dot)
|
if (!gdisp->dot_for_dot) /* here */
|
||||||
{
|
{
|
||||||
gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
|
gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
|
||||||
xpnt = ((gdouble)xpnt * gdisp->gimage->xresolution) / unit_factor + 0.5;
|
xpnt = ((gdouble)xpnt * gdisp->gimage->xresolution) / gdisp->gimage->yresolution + 0.5;
|
||||||
ypnt = ((gdouble)ypnt * gdisp->gimage->yresolution) / unit_factor + 0.5;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
xoffset = xpnt - gdisp->offset_x;
|
xoffset = xpnt - gdisp->offset_x;
|
||||||
@ -439,11 +428,25 @@ nav_window_update_preview (NavWinData *iwd)
|
|||||||
* gimp_image_construct_composite_preview() can't cope with
|
* gimp_image_construct_composite_preview() can't cope with
|
||||||
* dot_for_dot not been set.
|
* dot_for_dot not been set.
|
||||||
*/
|
*/
|
||||||
if (!gdisp->dot_for_dot)
|
if (!gdisp->dot_for_dot) /* ALT */
|
||||||
{
|
{
|
||||||
gdouble unit_factor = gimp_unit_get_factor (gimage->unit);
|
gint sel_width = gimage->width;
|
||||||
pwidth = ((gdouble)iwd->pwidth * (gimage->xresolution))/(unit_factor)+0.5;
|
gint sel_height = gimage->height;
|
||||||
pheight = ((gdouble)iwd->pheight * (gimage->yresolution))/(unit_factor)+0.5;
|
gdouble tratio;
|
||||||
|
|
||||||
|
if (sel_width > sel_height) {
|
||||||
|
pwidth = iwd->nav_preview_width;
|
||||||
|
tratio = (gdouble)pwidth / ((gdouble)sel_width);
|
||||||
|
pheight = sel_height * tratio + 0.5;
|
||||||
|
tratio = (gdouble)pheight/(gdouble)sel_height;
|
||||||
|
pwidth = sel_width * tratio + 0.5;
|
||||||
|
} else {
|
||||||
|
pheight = iwd->nav_preview_height;
|
||||||
|
tratio = (gdouble)pheight / ((gdouble)sel_height);
|
||||||
|
pwidth = sel_width * tratio + 0.5;
|
||||||
|
tratio = (gdouble)pwidth/(gdouble)sel_width;
|
||||||
|
pheight = sel_height * tratio + 0.5;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
preview_buf = gimp_image_construct_composite_preview (gimage,
|
preview_buf = gimp_image_construct_composite_preview (gimage,
|
||||||
|
@ -163,15 +163,11 @@ nav_window_disp_area (NavWinData *iwd,
|
|||||||
newwidth = gimage->width;
|
newwidth = gimage->width;
|
||||||
newheight = gimage->height;
|
newheight = gimage->height;
|
||||||
|
|
||||||
if (!gdisp->dot_for_dot)
|
if(!gdisp->dot_for_dot)
|
||||||
{
|
{
|
||||||
gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
|
newwidth = (newwidth * gdisp->gimage->yresolution)/ gdisp->gimage->xresolution;
|
||||||
newwidth = (gdouble)newwidth * unit_factor / gdisp->gimage->xresolution + 0.5;
|
iwd->dispx = ((gdisp->offset_x * gdisp->gimage->yresolution * iwd->ratio)/ (gdisp->gimage->xresolution * xratio)) + 0.5; /* here */
|
||||||
newheight = (gdouble)newheight * unit_factor / gdisp->gimage->yresolution + 0.5;
|
iwd->dispwidth = ((gdisp->disp_width * gdisp->gimage->yresolution * iwd->ratio)/ (gdisp->gimage->xresolution * xratio)) + 0.5; /* here */
|
||||||
iwd->dispx = (gdouble)iwd->dispx * unit_factor / gdisp->gimage->xresolution + 0.5;
|
|
||||||
iwd->dispy = (gdouble)iwd->dispy * unit_factor / gdisp->gimage->yresolution + 0.5;
|
|
||||||
iwd->dispwidth = (gdouble)iwd->dispwidth * unit_factor / gdisp->gimage->xresolution + 0.5;
|
|
||||||
iwd->dispheight = (gdouble)iwd->dispheight * unit_factor / gdisp->gimage->yresolution + 0.5;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if((iwd->imagewidth > 0 && newwidth != iwd->imagewidth) ||
|
if((iwd->imagewidth > 0 && newwidth != iwd->imagewidth) ||
|
||||||
@ -280,15 +276,18 @@ set_size_data (NavWinData *iwd)
|
|||||||
sel_width = gimage->width;
|
sel_width = gimage->width;
|
||||||
sel_height = gimage->height;
|
sel_height = gimage->height;
|
||||||
|
|
||||||
|
if(!gdisp->dot_for_dot)
|
||||||
|
sel_width = (sel_width * gdisp->gimage->yresolution)/ gdisp->gimage->xresolution;
|
||||||
|
|
||||||
if (sel_width > sel_height) {
|
if (sel_width > sel_height) {
|
||||||
pwidth = MIN(sel_width, iwd->nav_preview_width);
|
pwidth = iwd->nav_preview_width;
|
||||||
/* pheight = sel_height * pwidth / sel_width; */
|
/* pheight = sel_height * pwidth / sel_width; */
|
||||||
iwd->ratio = (gdouble)pwidth / ((gdouble)sel_width);
|
iwd->ratio = (gdouble)pwidth / ((gdouble)sel_width);
|
||||||
pheight = sel_height * iwd->ratio + 0.5;
|
pheight = sel_height * iwd->ratio + 0.5;
|
||||||
iwd->ratio = (gdouble)pheight/(gdouble)sel_height;
|
iwd->ratio = (gdouble)pheight/(gdouble)sel_height;
|
||||||
pwidth = sel_width * iwd->ratio + 0.5;
|
pwidth = sel_width * iwd->ratio + 0.5;
|
||||||
} else {
|
} else {
|
||||||
pheight = MIN(sel_height, iwd->nav_preview_height);
|
pheight = iwd->nav_preview_height;
|
||||||
/* pwidth = sel_width * pheight / sel_height; */
|
/* pwidth = sel_width * pheight / sel_height; */
|
||||||
iwd->ratio = (gdouble)pheight / ((gdouble)sel_height);
|
iwd->ratio = (gdouble)pheight / ((gdouble)sel_height);
|
||||||
pwidth = sel_width * iwd->ratio + 0.5;
|
pwidth = sel_width * iwd->ratio + 0.5;
|
||||||
@ -296,17 +295,8 @@ set_size_data (NavWinData *iwd)
|
|||||||
pheight = sel_height * iwd->ratio + 0.5;
|
pheight = sel_height * iwd->ratio + 0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gdisp->dot_for_dot)
|
iwd->pwidth = pwidth;
|
||||||
{
|
iwd->pheight = pheight;
|
||||||
iwd->pwidth = pwidth;
|
|
||||||
iwd->pheight = pheight;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
|
|
||||||
iwd->pwidth = ((gdouble)pwidth * unit_factor)/(gdisp->gimage->xresolution);
|
|
||||||
iwd->pheight = ((gdouble)pheight * unit_factor)/(gdisp->gimage->yresolution);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -387,18 +377,17 @@ update_real_view (NavWinData *iwd,
|
|||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
xpnt = (gint)(((gdouble)(tx)*xratio)/iwd->ratio);
|
xpnt = (gint)(((gdouble)(tx)*xratio)/iwd->ratio+0.5);
|
||||||
|
|
||||||
if((ty + iwd->dispheight) >= iwd->pheight)
|
if((ty + iwd->dispheight) >= iwd->pheight)
|
||||||
ty = iwd->pheight; /* Same comment as for xpnt above. */
|
ty = iwd->pheight; /* Same comment as for xpnt above. */
|
||||||
|
|
||||||
ypnt = (gint)(((gdouble)(ty)*yratio)/iwd->ratio);
|
ypnt = (gint)(((gdouble)(ty)*yratio)/iwd->ratio+0.5);
|
||||||
|
|
||||||
if (!gdisp->dot_for_dot)
|
if (!gdisp->dot_for_dot) /* here */
|
||||||
{
|
{
|
||||||
gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
|
gdouble unit_factor = gimp_unit_get_factor (gdisp->gimage->unit);
|
||||||
xpnt = ((gdouble)xpnt * gdisp->gimage->xresolution) / unit_factor + 0.5;
|
xpnt = ((gdouble)xpnt * gdisp->gimage->xresolution) / gdisp->gimage->yresolution + 0.5;
|
||||||
ypnt = ((gdouble)ypnt * gdisp->gimage->yresolution) / unit_factor + 0.5;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
xoffset = xpnt - gdisp->offset_x;
|
xoffset = xpnt - gdisp->offset_x;
|
||||||
@ -439,11 +428,25 @@ nav_window_update_preview (NavWinData *iwd)
|
|||||||
* gimp_image_construct_composite_preview() can't cope with
|
* gimp_image_construct_composite_preview() can't cope with
|
||||||
* dot_for_dot not been set.
|
* dot_for_dot not been set.
|
||||||
*/
|
*/
|
||||||
if (!gdisp->dot_for_dot)
|
if (!gdisp->dot_for_dot) /* ALT */
|
||||||
{
|
{
|
||||||
gdouble unit_factor = gimp_unit_get_factor (gimage->unit);
|
gint sel_width = gimage->width;
|
||||||
pwidth = ((gdouble)iwd->pwidth * (gimage->xresolution))/(unit_factor)+0.5;
|
gint sel_height = gimage->height;
|
||||||
pheight = ((gdouble)iwd->pheight * (gimage->yresolution))/(unit_factor)+0.5;
|
gdouble tratio;
|
||||||
|
|
||||||
|
if (sel_width > sel_height) {
|
||||||
|
pwidth = iwd->nav_preview_width;
|
||||||
|
tratio = (gdouble)pwidth / ((gdouble)sel_width);
|
||||||
|
pheight = sel_height * tratio + 0.5;
|
||||||
|
tratio = (gdouble)pheight/(gdouble)sel_height;
|
||||||
|
pwidth = sel_width * tratio + 0.5;
|
||||||
|
} else {
|
||||||
|
pheight = iwd->nav_preview_height;
|
||||||
|
tratio = (gdouble)pheight / ((gdouble)sel_height);
|
||||||
|
pwidth = sel_width * tratio + 0.5;
|
||||||
|
tratio = (gdouble)pwidth/(gdouble)sel_width;
|
||||||
|
pheight = sel_height * tratio + 0.5;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
preview_buf = gimp_image_construct_composite_preview (gimage,
|
preview_buf = gimp_image_construct_composite_preview (gimage,
|
||||||
|
Reference in New Issue
Block a user