Bye naughty flip tool bug and other transform problems. You add alpha

correctly now.

-Yosh
This commit is contained in:
Manish Singh 1998-03-10 08:44:59 +00:00
parent b0787f405f
commit 13d0beecb4
3 changed files with 9 additions and 40 deletions

View File

@ -1,3 +1,8 @@
Tue Mar 10 00:38:31 PST 1998 Manish Singh <yosh@gimp.org>
* app/transform_core.c: transform tools add alpha channel
properly, fixing that really nasty painting bug
Sun Mar 8 17:44:05 PST 1998 Manish Singh <yosh@gimp.org>
* app/app_procs.c: fix for (install-colormap) and splash screen

View File

@ -149,7 +149,7 @@ transform_core_button_press (tool, bevent, gdisp_ptr)
if (gimage_mask_is_empty (gdisp->gimage) ||
gimage_mask_value (gdisp->gimage, x, y))
{
if (GIMP_DRAWABLE(layer->mask))
if (layer->mask != NULL && GIMP_DRAWABLE(layer->mask))
{
message_box ("Transformations do not work on\nlayers that contain layer masks.", NULL, NULL);
tool->state = INACTIVE;
@ -1211,6 +1211,7 @@ transform_core_paste (gimage, drawable, tiles, new_layer)
if ((layer = drawable_layer ( (drawable))) == NULL)
return NULL;
layer_add_alpha (layer);
floating_layer = gimage_floating_sel (gimage);
if (floating_layer)
@ -1233,25 +1234,6 @@ transform_core_paste (gimage, drawable, tiles, new_layer)
GIMP_DRAWABLE(layer)->offset_x = tiles->x;
GIMP_DRAWABLE(layer)->offset_y = tiles->y;
/* Select the layer type based on the number of bytes */
layer_type = GIMP_DRAWABLE(layer)->type;
switch (layer_type)
{
case RGB_GIMAGE : case RGBA_GIMAGE:
GIMP_DRAWABLE(layer)->type = (GIMP_DRAWABLE(layer)->bytes == 4) ? RGBA_GIMAGE : RGB_GIMAGE;
break;
case GRAY_GIMAGE : case GRAYA_GIMAGE:
GIMP_DRAWABLE(layer)->type = (GIMP_DRAWABLE(layer)->bytes == 2) ? GRAYA_GIMAGE : GRAY_GIMAGE;
break;
case INDEXED_GIMAGE : case INDEXEDA_GIMAGE:
GIMP_DRAWABLE(layer)->type = (GIMP_DRAWABLE(layer)->bytes == 2) ? INDEXEDA_GIMAGE : INDEXED_GIMAGE;
break;
}
/* If the layer type changed, update the gdisplay titles */
if (GIMP_DRAWABLE(layer)->type != layer_type)
gdisplays_update_title (gimage->ID);
if (floating_layer)
floating_sel_rigor (floating_layer, TRUE);

View File

@ -149,7 +149,7 @@ transform_core_button_press (tool, bevent, gdisp_ptr)
if (gimage_mask_is_empty (gdisp->gimage) ||
gimage_mask_value (gdisp->gimage, x, y))
{
if (GIMP_DRAWABLE(layer->mask))
if (layer->mask != NULL && GIMP_DRAWABLE(layer->mask))
{
message_box ("Transformations do not work on\nlayers that contain layer masks.", NULL, NULL);
tool->state = INACTIVE;
@ -1211,6 +1211,7 @@ transform_core_paste (gimage, drawable, tiles, new_layer)
if ((layer = drawable_layer ( (drawable))) == NULL)
return NULL;
layer_add_alpha (layer);
floating_layer = gimage_floating_sel (gimage);
if (floating_layer)
@ -1233,25 +1234,6 @@ transform_core_paste (gimage, drawable, tiles, new_layer)
GIMP_DRAWABLE(layer)->offset_x = tiles->x;
GIMP_DRAWABLE(layer)->offset_y = tiles->y;
/* Select the layer type based on the number of bytes */
layer_type = GIMP_DRAWABLE(layer)->type;
switch (layer_type)
{
case RGB_GIMAGE : case RGBA_GIMAGE:
GIMP_DRAWABLE(layer)->type = (GIMP_DRAWABLE(layer)->bytes == 4) ? RGBA_GIMAGE : RGB_GIMAGE;
break;
case GRAY_GIMAGE : case GRAYA_GIMAGE:
GIMP_DRAWABLE(layer)->type = (GIMP_DRAWABLE(layer)->bytes == 2) ? GRAYA_GIMAGE : GRAY_GIMAGE;
break;
case INDEXED_GIMAGE : case INDEXEDA_GIMAGE:
GIMP_DRAWABLE(layer)->type = (GIMP_DRAWABLE(layer)->bytes == 2) ? INDEXEDA_GIMAGE : INDEXED_GIMAGE;
break;
}
/* If the layer type changed, update the gdisplay titles */
if (GIMP_DRAWABLE(layer)->type != layer_type)
gdisplays_update_title (gimage->ID);
if (floating_layer)
floating_sel_rigor (floating_layer, TRUE);