From 154bc6ca0dfa9514190581988bc0bdc3f793ef36 Mon Sep 17 00:00:00 2001 From: Manish Singh Date: Thu, 12 Mar 1998 05:43:35 +0000 Subject: [PATCH] iscissors update changes for .20 release iscissors update changes for .20 release -Yosh --- ChangeLog | 5 +++ INSTALL | 2 +- NOTES | 4 +- README | 4 +- app/iscissors.c | 73 +++++++++++++++++++---------------- app/tools/gimpiscissorstool.c | 73 +++++++++++++++++++---------------- app/tools/iscissors.c | 73 +++++++++++++++++++---------------- configure.in | 4 +- 8 files changed, 132 insertions(+), 106 deletions(-) diff --git a/ChangeLog b/ChangeLog index d2bbcb60fa..f3d13604f0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Mar 11 21:42:15 PST 1998 Manish Singh + + * app/iscissors.c: another iscissors patch, don't know + if it does any good though + Wed Mar 11 19:30:54 EST 1998 Adrian Likins *docs/gimp.1: added gimp man page diff --git a/INSTALL b/INSTALL index e86d9e1a47..8065074fff 100644 --- a/INSTALL +++ b/INSTALL @@ -1,7 +1,7 @@ There are three basic steps to building and installing the GIMP on unix: - 1. You need to have installed GTK version 0.99.4 or better + 1. You need to have installed GTK version 0.99.5 or better 2. You may want to install other third party libraries that are needed for some of the available plugins: TIFF, PNG, JPEG, MPEG, etc. diff --git a/NOTES b/NOTES index 21f740b66d..e26960dcd8 100644 --- a/NOTES +++ b/NOTES @@ -1,7 +1,7 @@ -Some notes on GIMP-0.99.19: +Some notes on GIMP-0.99.20: Please remove everything from your old plugins dir before upgrading to -0.99.19. Some plugins are no longer in the dist and will not be updated. +0.99.20. Some plugins are no longer in the dist and will not be updated. -- Federico Mena -- Christoph Hoegl diff --git a/README b/README index 78348bd740..a8dfc11be3 100644 --- a/README +++ b/README @@ -1,12 +1,12 @@ The GIMP: the GNU Image Manipulation Program -------------------------------------------- -This is version 0.99.19 of the GIMP. For the most part it contains all +This is version 0.99.20 of the GIMP. For the most part it contains all of the features that will be in version 1.0 of the GIMP. It does, however, lack a) documentation, b) robustness and c) some of the plug-ins found in the 0.54 version. -The main difference between v0.99.19 and much earlier versions is the +The main difference between v0.99.20 and much earlier versions is the use of a tile based memory management for images. This allows the GIMP to work with images much larger than physical memory in a usable fashion. Before such memory management, the GIMP was nearly unusable diff --git a/app/iscissors.c b/app/iscissors.c index 602aeeaa51..e31ac7fb52 100644 --- a/app/iscissors.c +++ b/app/iscissors.c @@ -37,6 +37,7 @@ #include "paint_funcs.h" #include "rect_select.h" #include "temp_buf.h" +#include "tools.h" /* local structures */ @@ -273,6 +274,7 @@ selection_to_bezier(GtkWidget *w, gpointer none) iscissors = (Iscissors *) last_tool->private; last_tool->state = INACTIVE; bezierify_boundary (last_tool); + tools_select(BEZIER_SELECT); } return; }; @@ -482,6 +484,7 @@ iscissors_button_press (Tool *tool, gpointer gdisp_ptr) { GDisplay *gdisp; + GimpDrawable *drawable; Iscissors *iscissors; int replace, op; int x, y; @@ -489,13 +492,14 @@ iscissors_button_press (Tool *tool, last_tool = tool; gdisp = (GDisplay *) gdisp_ptr; iscissors = (Iscissors *) tool->private; + drawable = gimage_active_drawable (gdisp->gimage); /*message_box ("Intelligent Scissors is currently not enabled\nfor use with the tile-based GIMP\non anything but yosh's computer.", NULL, NULL);*/ /* return;*/ gdisplay_untransform_coords (gdisp, bevent->x, bevent->y, - &iscissors->x, &iscissors->y, FALSE, TRUE); + &iscissors->x, &iscissors->y, FALSE, TRUE); /* If the tool was being used in another image...reset it */ if (tool->state == ACTIVE && gdisp_ptr != tool->gdisp_ptr) @@ -536,8 +540,8 @@ iscissors_button_press (Tool *tool, /* If the edge map blocks haven't been allocated, do so now */ if (!edge_map_blocks) allocate_edge_map_blocks (BLOCK_WIDTH, BLOCK_HEIGHT, - gdisp->gimage->width, - gdisp->gimage->height); + drawable_width(drawable), + drawable_height(drawable)); iscissors->num_segs = 0; x = bevent->x; @@ -750,10 +754,10 @@ iscissors_draw_CR (GDisplay *gdisp, geometry[i][1] = pts[indices[i]].dy * SUPERSAMPLE; break; case SCREEN_COORDS: - gdisplay_transform_coords_f (gdisp, (int) pts[indices[i]].dx, - (int) pts[indices[i]].dy, &x, &y, TRUE); - geometry[i][0] = x; - geometry[i][1] = y; + /*gdisplay_transform_coords_f (gdisp, (int) pts[indices[i]].dx, + (int) pts[indices[i]].dy, &x, &y, TRUE);*/ + geometry[i][0] = pts[indices[i]].dx/*x*/; + geometry[i][1] = pts[indices[i]].dy/*y*/; break; } geometry[i][2] = 0; @@ -1292,12 +1296,6 @@ shape_of_boundary (Tool *tool) kinks[j].x = segs[i].x1; kinks[j].y = segs[i].y1; - /* transform from screen to image coordinates */ - /*gdisplay_untransform_coords (gdisp, kinks[j].x, kinks[j].y, - &x, &y, FALSE, TRUE);*/ - - kinks[j].x = BOUNDS (kinks[j].x, 0, (gdisp->gimage->width - 1)); - kinks[j].y = BOUNDS (kinks[j].y, 0, (gdisp->gimage->height - 1)); if(j) { if((kinks[i].x != kinks[j-1].x) || (kinks[j].y != kinks[j-1].y)) ++j; @@ -1370,21 +1368,24 @@ process_kinks (Tool *tool) Iscissors * iscissors; GDisplay * gdisp; Kink * kinks, * k_left, * k_right; - /* int x, y; */ + int x, y; int i; + GimpDrawable *drawable; + gdisp = (GDisplay *) tool->gdisp_ptr; + drawable = gimage_active_drawable (gdisp->gimage); iscissors = (Iscissors *) tool->private; kinks = iscissors->kinks; for (i = 0; i < iscissors->num_kinks; i++) { /* transform from screen to image coordinates */ - /*gdisplay_untransform_coords (gdisp, kinks[i].x, kinks[i].y, - &x, &y, FALSE, TRUE); */ - - kinks[i].x = BOUNDS (kinks[i].x, 0, (gdisp->gimage->width - 1)); - kinks[i].y = BOUNDS (kinks[i].y, 0, (gdisp->gimage->height - 1)); + gdisplay_untransform_coords (gdisp, kinks[i].x, kinks[i].y, + &x, &y, FALSE, TRUE); + /*FIXME*/ + kinks[i].x = BOUNDS (kinks[i].x, 0, (drawable_width(drawable) - 1)); + kinks[i].y = BOUNDS (kinks[i].y, 0, (drawable_height(drawable) - 1)); /* get local maximums */ k_left = get_kink (kinks, i-1, iscissors->num_kinks); @@ -1463,26 +1464,29 @@ edge_map_from_boundary (Tool *tool) int x, y, w, h; int x1, y1, x2, y2; int i; + GimpDrawable *drawable; + gdisp = (GDisplay *) tool->gdisp_ptr; + drawable = gimage_active_drawable (gdisp->gimage); iscissors = (Iscissors *) tool->private; x = y = w = h = x1 = y1 = x2 = y2 = 0; - x1 = gdisp->gimage->width; - y1 = gdisp->gimage->height; + x1 = drawable_width(drawable); + y1 = drawable_height(drawable); /* Find the edge map extents */ for (i = 0; i < iscissors->num_pts; i++) { x = BOUNDS (pts[i].x - LOCALIZE_RADIUS, 0, - gdisp->gimage->width); + drawable_width(drawable)); y = BOUNDS (pts[i].y - LOCALIZE_RADIUS, 0, - gdisp->gimage->height); + drawable_height(drawable)); w = BOUNDS (pts[i].x + LOCALIZE_RADIUS, 0, - gdisp->gimage->width); + drawable_width(drawable)); h = BOUNDS (pts[i].y + LOCALIZE_RADIUS, 0, - gdisp->gimage->height); + drawable_height(drawable)); w -= x; h -= y; @@ -1717,11 +1721,12 @@ post_process_boundary (Tool *tool) */ for (i = 0; i < iscissors->num_pts; i++) { - pts[i].x = BOUNDS (pts[i].x, 0, (gdisp->gimage->width - 1)); +/* iff you uncomment this, change it to use the drawable width&height + pts[i].x = BOUNDS (pts[i].x, 0, (gdisp->gimage->width - 1)); pts[i].y = BOUNDS (pts[i].y, 0, (gdisp->gimage->height - 1)); pts[i].dx = BOUNDS (pts[i].dx, 0, (gdisp->gimage->width - 1)); pts[i].dy = BOUNDS (pts[i].dy, 0, (gdisp->gimage->height - 1)); - +*/ if (pts[i].dir == 0 || pts[i].stable == 0) { left = (i == 0) ? iscissors->num_pts - 1 : i - 1; @@ -1841,10 +1846,10 @@ calculate_edge_map (GImage *gimage, edge_map = temp_buf_new (w, h, EDGE_WIDTH, x, y, NULL); /* calculate the extent of the search make a 1 pixel border */ - x1 = BOUNDS (x, 0, gimage->width); - y1 = BOUNDS (y, 0, gimage->height); - x2 = BOUNDS (x + w, 0, gimage->width); - y2 = BOUNDS (y + h, 0, gimage->height); + x1 = BOUNDS (x, 0, drawable_width(drawable)); + y1 = BOUNDS (y, 0, drawable_height(drawable)); + x2 = BOUNDS (x + w, 0, drawable_width(drawable)); + y2 = BOUNDS (y + h, 0, drawable_height(drawable)); width = x2 - x1; height = y2 - y1; @@ -2090,12 +2095,14 @@ set_edge_map_blocks (void *gimage_ptr, int x2, y2; int row, col; int width, height; + GimpDrawable *drawable; width = height = 0; gimage = (GImage *) gimage_ptr; - width = gimage->width; - height = gimage->height; + drawable = gimage_active_drawable (gimage); + width = drawable_width(drawable); + height = drawable_height(drawable); startx = x; endx = x + w; diff --git a/app/tools/gimpiscissorstool.c b/app/tools/gimpiscissorstool.c index 602aeeaa51..e31ac7fb52 100644 --- a/app/tools/gimpiscissorstool.c +++ b/app/tools/gimpiscissorstool.c @@ -37,6 +37,7 @@ #include "paint_funcs.h" #include "rect_select.h" #include "temp_buf.h" +#include "tools.h" /* local structures */ @@ -273,6 +274,7 @@ selection_to_bezier(GtkWidget *w, gpointer none) iscissors = (Iscissors *) last_tool->private; last_tool->state = INACTIVE; bezierify_boundary (last_tool); + tools_select(BEZIER_SELECT); } return; }; @@ -482,6 +484,7 @@ iscissors_button_press (Tool *tool, gpointer gdisp_ptr) { GDisplay *gdisp; + GimpDrawable *drawable; Iscissors *iscissors; int replace, op; int x, y; @@ -489,13 +492,14 @@ iscissors_button_press (Tool *tool, last_tool = tool; gdisp = (GDisplay *) gdisp_ptr; iscissors = (Iscissors *) tool->private; + drawable = gimage_active_drawable (gdisp->gimage); /*message_box ("Intelligent Scissors is currently not enabled\nfor use with the tile-based GIMP\non anything but yosh's computer.", NULL, NULL);*/ /* return;*/ gdisplay_untransform_coords (gdisp, bevent->x, bevent->y, - &iscissors->x, &iscissors->y, FALSE, TRUE); + &iscissors->x, &iscissors->y, FALSE, TRUE); /* If the tool was being used in another image...reset it */ if (tool->state == ACTIVE && gdisp_ptr != tool->gdisp_ptr) @@ -536,8 +540,8 @@ iscissors_button_press (Tool *tool, /* If the edge map blocks haven't been allocated, do so now */ if (!edge_map_blocks) allocate_edge_map_blocks (BLOCK_WIDTH, BLOCK_HEIGHT, - gdisp->gimage->width, - gdisp->gimage->height); + drawable_width(drawable), + drawable_height(drawable)); iscissors->num_segs = 0; x = bevent->x; @@ -750,10 +754,10 @@ iscissors_draw_CR (GDisplay *gdisp, geometry[i][1] = pts[indices[i]].dy * SUPERSAMPLE; break; case SCREEN_COORDS: - gdisplay_transform_coords_f (gdisp, (int) pts[indices[i]].dx, - (int) pts[indices[i]].dy, &x, &y, TRUE); - geometry[i][0] = x; - geometry[i][1] = y; + /*gdisplay_transform_coords_f (gdisp, (int) pts[indices[i]].dx, + (int) pts[indices[i]].dy, &x, &y, TRUE);*/ + geometry[i][0] = pts[indices[i]].dx/*x*/; + geometry[i][1] = pts[indices[i]].dy/*y*/; break; } geometry[i][2] = 0; @@ -1292,12 +1296,6 @@ shape_of_boundary (Tool *tool) kinks[j].x = segs[i].x1; kinks[j].y = segs[i].y1; - /* transform from screen to image coordinates */ - /*gdisplay_untransform_coords (gdisp, kinks[j].x, kinks[j].y, - &x, &y, FALSE, TRUE);*/ - - kinks[j].x = BOUNDS (kinks[j].x, 0, (gdisp->gimage->width - 1)); - kinks[j].y = BOUNDS (kinks[j].y, 0, (gdisp->gimage->height - 1)); if(j) { if((kinks[i].x != kinks[j-1].x) || (kinks[j].y != kinks[j-1].y)) ++j; @@ -1370,21 +1368,24 @@ process_kinks (Tool *tool) Iscissors * iscissors; GDisplay * gdisp; Kink * kinks, * k_left, * k_right; - /* int x, y; */ + int x, y; int i; + GimpDrawable *drawable; + gdisp = (GDisplay *) tool->gdisp_ptr; + drawable = gimage_active_drawable (gdisp->gimage); iscissors = (Iscissors *) tool->private; kinks = iscissors->kinks; for (i = 0; i < iscissors->num_kinks; i++) { /* transform from screen to image coordinates */ - /*gdisplay_untransform_coords (gdisp, kinks[i].x, kinks[i].y, - &x, &y, FALSE, TRUE); */ - - kinks[i].x = BOUNDS (kinks[i].x, 0, (gdisp->gimage->width - 1)); - kinks[i].y = BOUNDS (kinks[i].y, 0, (gdisp->gimage->height - 1)); + gdisplay_untransform_coords (gdisp, kinks[i].x, kinks[i].y, + &x, &y, FALSE, TRUE); + /*FIXME*/ + kinks[i].x = BOUNDS (kinks[i].x, 0, (drawable_width(drawable) - 1)); + kinks[i].y = BOUNDS (kinks[i].y, 0, (drawable_height(drawable) - 1)); /* get local maximums */ k_left = get_kink (kinks, i-1, iscissors->num_kinks); @@ -1463,26 +1464,29 @@ edge_map_from_boundary (Tool *tool) int x, y, w, h; int x1, y1, x2, y2; int i; + GimpDrawable *drawable; + gdisp = (GDisplay *) tool->gdisp_ptr; + drawable = gimage_active_drawable (gdisp->gimage); iscissors = (Iscissors *) tool->private; x = y = w = h = x1 = y1 = x2 = y2 = 0; - x1 = gdisp->gimage->width; - y1 = gdisp->gimage->height; + x1 = drawable_width(drawable); + y1 = drawable_height(drawable); /* Find the edge map extents */ for (i = 0; i < iscissors->num_pts; i++) { x = BOUNDS (pts[i].x - LOCALIZE_RADIUS, 0, - gdisp->gimage->width); + drawable_width(drawable)); y = BOUNDS (pts[i].y - LOCALIZE_RADIUS, 0, - gdisp->gimage->height); + drawable_height(drawable)); w = BOUNDS (pts[i].x + LOCALIZE_RADIUS, 0, - gdisp->gimage->width); + drawable_width(drawable)); h = BOUNDS (pts[i].y + LOCALIZE_RADIUS, 0, - gdisp->gimage->height); + drawable_height(drawable)); w -= x; h -= y; @@ -1717,11 +1721,12 @@ post_process_boundary (Tool *tool) */ for (i = 0; i < iscissors->num_pts; i++) { - pts[i].x = BOUNDS (pts[i].x, 0, (gdisp->gimage->width - 1)); +/* iff you uncomment this, change it to use the drawable width&height + pts[i].x = BOUNDS (pts[i].x, 0, (gdisp->gimage->width - 1)); pts[i].y = BOUNDS (pts[i].y, 0, (gdisp->gimage->height - 1)); pts[i].dx = BOUNDS (pts[i].dx, 0, (gdisp->gimage->width - 1)); pts[i].dy = BOUNDS (pts[i].dy, 0, (gdisp->gimage->height - 1)); - +*/ if (pts[i].dir == 0 || pts[i].stable == 0) { left = (i == 0) ? iscissors->num_pts - 1 : i - 1; @@ -1841,10 +1846,10 @@ calculate_edge_map (GImage *gimage, edge_map = temp_buf_new (w, h, EDGE_WIDTH, x, y, NULL); /* calculate the extent of the search make a 1 pixel border */ - x1 = BOUNDS (x, 0, gimage->width); - y1 = BOUNDS (y, 0, gimage->height); - x2 = BOUNDS (x + w, 0, gimage->width); - y2 = BOUNDS (y + h, 0, gimage->height); + x1 = BOUNDS (x, 0, drawable_width(drawable)); + y1 = BOUNDS (y, 0, drawable_height(drawable)); + x2 = BOUNDS (x + w, 0, drawable_width(drawable)); + y2 = BOUNDS (y + h, 0, drawable_height(drawable)); width = x2 - x1; height = y2 - y1; @@ -2090,12 +2095,14 @@ set_edge_map_blocks (void *gimage_ptr, int x2, y2; int row, col; int width, height; + GimpDrawable *drawable; width = height = 0; gimage = (GImage *) gimage_ptr; - width = gimage->width; - height = gimage->height; + drawable = gimage_active_drawable (gimage); + width = drawable_width(drawable); + height = drawable_height(drawable); startx = x; endx = x + w; diff --git a/app/tools/iscissors.c b/app/tools/iscissors.c index 602aeeaa51..e31ac7fb52 100644 --- a/app/tools/iscissors.c +++ b/app/tools/iscissors.c @@ -37,6 +37,7 @@ #include "paint_funcs.h" #include "rect_select.h" #include "temp_buf.h" +#include "tools.h" /* local structures */ @@ -273,6 +274,7 @@ selection_to_bezier(GtkWidget *w, gpointer none) iscissors = (Iscissors *) last_tool->private; last_tool->state = INACTIVE; bezierify_boundary (last_tool); + tools_select(BEZIER_SELECT); } return; }; @@ -482,6 +484,7 @@ iscissors_button_press (Tool *tool, gpointer gdisp_ptr) { GDisplay *gdisp; + GimpDrawable *drawable; Iscissors *iscissors; int replace, op; int x, y; @@ -489,13 +492,14 @@ iscissors_button_press (Tool *tool, last_tool = tool; gdisp = (GDisplay *) gdisp_ptr; iscissors = (Iscissors *) tool->private; + drawable = gimage_active_drawable (gdisp->gimage); /*message_box ("Intelligent Scissors is currently not enabled\nfor use with the tile-based GIMP\non anything but yosh's computer.", NULL, NULL);*/ /* return;*/ gdisplay_untransform_coords (gdisp, bevent->x, bevent->y, - &iscissors->x, &iscissors->y, FALSE, TRUE); + &iscissors->x, &iscissors->y, FALSE, TRUE); /* If the tool was being used in another image...reset it */ if (tool->state == ACTIVE && gdisp_ptr != tool->gdisp_ptr) @@ -536,8 +540,8 @@ iscissors_button_press (Tool *tool, /* If the edge map blocks haven't been allocated, do so now */ if (!edge_map_blocks) allocate_edge_map_blocks (BLOCK_WIDTH, BLOCK_HEIGHT, - gdisp->gimage->width, - gdisp->gimage->height); + drawable_width(drawable), + drawable_height(drawable)); iscissors->num_segs = 0; x = bevent->x; @@ -750,10 +754,10 @@ iscissors_draw_CR (GDisplay *gdisp, geometry[i][1] = pts[indices[i]].dy * SUPERSAMPLE; break; case SCREEN_COORDS: - gdisplay_transform_coords_f (gdisp, (int) pts[indices[i]].dx, - (int) pts[indices[i]].dy, &x, &y, TRUE); - geometry[i][0] = x; - geometry[i][1] = y; + /*gdisplay_transform_coords_f (gdisp, (int) pts[indices[i]].dx, + (int) pts[indices[i]].dy, &x, &y, TRUE);*/ + geometry[i][0] = pts[indices[i]].dx/*x*/; + geometry[i][1] = pts[indices[i]].dy/*y*/; break; } geometry[i][2] = 0; @@ -1292,12 +1296,6 @@ shape_of_boundary (Tool *tool) kinks[j].x = segs[i].x1; kinks[j].y = segs[i].y1; - /* transform from screen to image coordinates */ - /*gdisplay_untransform_coords (gdisp, kinks[j].x, kinks[j].y, - &x, &y, FALSE, TRUE);*/ - - kinks[j].x = BOUNDS (kinks[j].x, 0, (gdisp->gimage->width - 1)); - kinks[j].y = BOUNDS (kinks[j].y, 0, (gdisp->gimage->height - 1)); if(j) { if((kinks[i].x != kinks[j-1].x) || (kinks[j].y != kinks[j-1].y)) ++j; @@ -1370,21 +1368,24 @@ process_kinks (Tool *tool) Iscissors * iscissors; GDisplay * gdisp; Kink * kinks, * k_left, * k_right; - /* int x, y; */ + int x, y; int i; + GimpDrawable *drawable; + gdisp = (GDisplay *) tool->gdisp_ptr; + drawable = gimage_active_drawable (gdisp->gimage); iscissors = (Iscissors *) tool->private; kinks = iscissors->kinks; for (i = 0; i < iscissors->num_kinks; i++) { /* transform from screen to image coordinates */ - /*gdisplay_untransform_coords (gdisp, kinks[i].x, kinks[i].y, - &x, &y, FALSE, TRUE); */ - - kinks[i].x = BOUNDS (kinks[i].x, 0, (gdisp->gimage->width - 1)); - kinks[i].y = BOUNDS (kinks[i].y, 0, (gdisp->gimage->height - 1)); + gdisplay_untransform_coords (gdisp, kinks[i].x, kinks[i].y, + &x, &y, FALSE, TRUE); + /*FIXME*/ + kinks[i].x = BOUNDS (kinks[i].x, 0, (drawable_width(drawable) - 1)); + kinks[i].y = BOUNDS (kinks[i].y, 0, (drawable_height(drawable) - 1)); /* get local maximums */ k_left = get_kink (kinks, i-1, iscissors->num_kinks); @@ -1463,26 +1464,29 @@ edge_map_from_boundary (Tool *tool) int x, y, w, h; int x1, y1, x2, y2; int i; + GimpDrawable *drawable; + gdisp = (GDisplay *) tool->gdisp_ptr; + drawable = gimage_active_drawable (gdisp->gimage); iscissors = (Iscissors *) tool->private; x = y = w = h = x1 = y1 = x2 = y2 = 0; - x1 = gdisp->gimage->width; - y1 = gdisp->gimage->height; + x1 = drawable_width(drawable); + y1 = drawable_height(drawable); /* Find the edge map extents */ for (i = 0; i < iscissors->num_pts; i++) { x = BOUNDS (pts[i].x - LOCALIZE_RADIUS, 0, - gdisp->gimage->width); + drawable_width(drawable)); y = BOUNDS (pts[i].y - LOCALIZE_RADIUS, 0, - gdisp->gimage->height); + drawable_height(drawable)); w = BOUNDS (pts[i].x + LOCALIZE_RADIUS, 0, - gdisp->gimage->width); + drawable_width(drawable)); h = BOUNDS (pts[i].y + LOCALIZE_RADIUS, 0, - gdisp->gimage->height); + drawable_height(drawable)); w -= x; h -= y; @@ -1717,11 +1721,12 @@ post_process_boundary (Tool *tool) */ for (i = 0; i < iscissors->num_pts; i++) { - pts[i].x = BOUNDS (pts[i].x, 0, (gdisp->gimage->width - 1)); +/* iff you uncomment this, change it to use the drawable width&height + pts[i].x = BOUNDS (pts[i].x, 0, (gdisp->gimage->width - 1)); pts[i].y = BOUNDS (pts[i].y, 0, (gdisp->gimage->height - 1)); pts[i].dx = BOUNDS (pts[i].dx, 0, (gdisp->gimage->width - 1)); pts[i].dy = BOUNDS (pts[i].dy, 0, (gdisp->gimage->height - 1)); - +*/ if (pts[i].dir == 0 || pts[i].stable == 0) { left = (i == 0) ? iscissors->num_pts - 1 : i - 1; @@ -1841,10 +1846,10 @@ calculate_edge_map (GImage *gimage, edge_map = temp_buf_new (w, h, EDGE_WIDTH, x, y, NULL); /* calculate the extent of the search make a 1 pixel border */ - x1 = BOUNDS (x, 0, gimage->width); - y1 = BOUNDS (y, 0, gimage->height); - x2 = BOUNDS (x + w, 0, gimage->width); - y2 = BOUNDS (y + h, 0, gimage->height); + x1 = BOUNDS (x, 0, drawable_width(drawable)); + y1 = BOUNDS (y, 0, drawable_height(drawable)); + x2 = BOUNDS (x + w, 0, drawable_width(drawable)); + y2 = BOUNDS (y + h, 0, drawable_height(drawable)); width = x2 - x1; height = y2 - y1; @@ -2090,12 +2095,14 @@ set_edge_map_blocks (void *gimage_ptr, int x2, y2; int row, col; int width, height; + GimpDrawable *drawable; width = height = 0; gimage = (GImage *) gimage_ptr; - width = gimage->width; - height = gimage->height; + drawable = gimage_active_drawable (gimage); + width = drawable_width(drawable); + height = drawable_height(drawable); startx = x; endx = x + w; diff --git a/configure.in b/configure.in index 6a2c21d281..50e45a3a35 100644 --- a/configure.in +++ b/configure.in @@ -7,10 +7,10 @@ GIMP_MAJOR_VERSION_NUMBER=0 dnl $Format: "GIMP_MINOR_VERSION_NUMBER=$ReleaseMinorVersion$" $ GIMP_MINOR_VERSION_NUMBER=99 dnl $Format: "GIMP_MICRO_VERSION_NUMBER=$ReleaseMicroVersion$" $ -GIMP_MICRO_VERSION_NUMBER=19 +GIMP_MICRO_VERSION_NUMBER=20 dnl $Format: "AM_INIT_AUTOMAKE(gimp, $ReleaseVersion$)" $ -AM_INIT_AUTOMAKE(gimp, 0.99.19) +AM_INIT_AUTOMAKE(gimp, 0.99.20) dnl Specify a header configuration file AM_CONFIG_HEADER(config.h)