mirror of https://github.com/GNOME/gimp.git
Finished the opaque-move stuff... hopefully. Float and selection-mask
Sat Apr 24 21:50:58 BST 1999 Adam D. Moss <adam@gimp.org> * app/edit_selection.c: Finished the opaque-move stuff... hopefully. Float and selection-mask movement behaviour repaired, etc.
This commit is contained in:
parent
107038e5dc
commit
e247b49e5f
|
@ -1,3 +1,9 @@
|
||||||
|
Sat Apr 24 21:50:58 BST 1999 Adam D. Moss <adam@gimp.org>
|
||||||
|
|
||||||
|
* app/edit_selection.c: Finished the opaque-move stuff...
|
||||||
|
hopefully. Float and selection-mask movement behaviour
|
||||||
|
repaired, etc.
|
||||||
|
|
||||||
Sat Apr 24 13:28:13 PDT 1999 Manish Singh <yosh@gimp.org>
|
Sat Apr 24 13:28:13 PDT 1999 Manish Singh <yosh@gimp.org>
|
||||||
|
|
||||||
* app/layer_cmds.[ch]: pdbgened, header file removed
|
* app/layer_cmds.[ch]: pdbgened, header file removed
|
||||||
|
|
|
@ -285,6 +285,25 @@ edit_selection_button_release (Tool *tool,
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
if (edit_select.cumlx == 0 && edit_select.cumly == 0)
|
||||||
|
{
|
||||||
|
/* The user either didn't actually move the selection,
|
||||||
|
or moved it around and eventually just put it back in
|
||||||
|
exactly the same spot. */
|
||||||
|
|
||||||
|
if ((edit_select.edit_type == MaskTranslate) ||
|
||||||
|
(edit_select.edit_type == MaskToLayerTranslate))
|
||||||
|
gimage_mask_clear (gdisp->gimage);
|
||||||
|
/* if no movement occured and the type is LayerTranslate,
|
||||||
|
check if the layer is a floating selection. If so, anchor. */
|
||||||
|
else if (edit_select.edit_type == FloatingSelTranslate)
|
||||||
|
{
|
||||||
|
layer = gimage_get_active_layer (gdisp->gimage);
|
||||||
|
if (layer_is_floating_sel (layer))
|
||||||
|
floating_sel_anchor (layer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
undo_push_group_end (gdisp->gimage);
|
undo_push_group_end (gdisp->gimage);
|
||||||
|
|
||||||
if (bevent->state & GDK_BUTTON2_MASK) /* OPERATION CANCELLED */
|
if (bevent->state & GDK_BUTTON2_MASK) /* OPERATION CANCELLED */
|
||||||
|
@ -351,11 +370,15 @@ edit_selection_motion (Tool *tool,
|
||||||
case MaskTranslate:
|
case MaskTranslate:
|
||||||
/* translate the selection */
|
/* translate the selection */
|
||||||
gimage_mask_translate (gdisp->gimage, xoffset, yoffset);
|
gimage_mask_translate (gdisp->gimage, xoffset, yoffset);
|
||||||
break;
|
/*g_warning("%d,%d %d,%d %d,%d %d,%d %d,%d %d,%d",
|
||||||
|
edit_select.origx,edit_select.origy,
|
||||||
case MaskToLayerTranslate:
|
edit_select.cumlx,edit_select.cumly,
|
||||||
gimage_mask_float (gdisp->gimage, gimage_active_drawable (gdisp->gimage),
|
xoffset,yoffset,
|
||||||
xoffset, yoffset);
|
x,y,
|
||||||
|
edit_select.x1,edit_select.y1,
|
||||||
|
edit_select.x2,edit_select.y2);*/
|
||||||
|
edit_select.origx = x;
|
||||||
|
edit_select.origy = y;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LayerTranslate:
|
case LayerTranslate:
|
||||||
|
@ -379,6 +402,15 @@ edit_selection_motion (Tool *tool,
|
||||||
floating_sel_rigor (floating_layer, TRUE);
|
floating_sel_rigor (floating_layer, TRUE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case MaskToLayerTranslate:
|
||||||
|
gimage_mask_float (gdisp->gimage, gimage_active_drawable (gdisp->gimage),
|
||||||
|
0, 0);
|
||||||
|
edit_select.edit_type = FloatingSelTranslate;
|
||||||
|
|
||||||
|
edit_select.origx -= edit_select.x1;
|
||||||
|
edit_select.origy -= edit_select.y1;
|
||||||
|
break;
|
||||||
|
|
||||||
case FloatingSelTranslate:
|
case FloatingSelTranslate:
|
||||||
layer = gimage_get_active_layer (gdisp->gimage);
|
layer = gimage_get_active_layer (gdisp->gimage);
|
||||||
|
|
||||||
|
@ -447,7 +479,8 @@ edit_selection_draw (Tool *tool)
|
||||||
gdisp = (GDisplay *) tool->gdisp_ptr;
|
gdisp = (GDisplay *) tool->gdisp_ptr;
|
||||||
select = gdisp->select;
|
select = gdisp->select;
|
||||||
|
|
||||||
if (edit_select.edit_type == FloatingSelTranslate)
|
if (edit_select.edit_type == FloatingSelTranslate ||
|
||||||
|
edit_select.edit_type == MaskTranslate)
|
||||||
{
|
{
|
||||||
diff_x = SCALEX (gdisp, edit_select.cumlx);
|
diff_x = SCALEX (gdisp, edit_select.cumlx);
|
||||||
diff_y = SCALEY (gdisp, edit_select.cumly);
|
diff_y = SCALEY (gdisp, edit_select.cumly);
|
||||||
|
|
|
@ -285,6 +285,25 @@ edit_selection_button_release (Tool *tool,
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
if (edit_select.cumlx == 0 && edit_select.cumly == 0)
|
||||||
|
{
|
||||||
|
/* The user either didn't actually move the selection,
|
||||||
|
or moved it around and eventually just put it back in
|
||||||
|
exactly the same spot. */
|
||||||
|
|
||||||
|
if ((edit_select.edit_type == MaskTranslate) ||
|
||||||
|
(edit_select.edit_type == MaskToLayerTranslate))
|
||||||
|
gimage_mask_clear (gdisp->gimage);
|
||||||
|
/* if no movement occured and the type is LayerTranslate,
|
||||||
|
check if the layer is a floating selection. If so, anchor. */
|
||||||
|
else if (edit_select.edit_type == FloatingSelTranslate)
|
||||||
|
{
|
||||||
|
layer = gimage_get_active_layer (gdisp->gimage);
|
||||||
|
if (layer_is_floating_sel (layer))
|
||||||
|
floating_sel_anchor (layer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
undo_push_group_end (gdisp->gimage);
|
undo_push_group_end (gdisp->gimage);
|
||||||
|
|
||||||
if (bevent->state & GDK_BUTTON2_MASK) /* OPERATION CANCELLED */
|
if (bevent->state & GDK_BUTTON2_MASK) /* OPERATION CANCELLED */
|
||||||
|
@ -351,11 +370,15 @@ edit_selection_motion (Tool *tool,
|
||||||
case MaskTranslate:
|
case MaskTranslate:
|
||||||
/* translate the selection */
|
/* translate the selection */
|
||||||
gimage_mask_translate (gdisp->gimage, xoffset, yoffset);
|
gimage_mask_translate (gdisp->gimage, xoffset, yoffset);
|
||||||
break;
|
/*g_warning("%d,%d %d,%d %d,%d %d,%d %d,%d %d,%d",
|
||||||
|
edit_select.origx,edit_select.origy,
|
||||||
case MaskToLayerTranslate:
|
edit_select.cumlx,edit_select.cumly,
|
||||||
gimage_mask_float (gdisp->gimage, gimage_active_drawable (gdisp->gimage),
|
xoffset,yoffset,
|
||||||
xoffset, yoffset);
|
x,y,
|
||||||
|
edit_select.x1,edit_select.y1,
|
||||||
|
edit_select.x2,edit_select.y2);*/
|
||||||
|
edit_select.origx = x;
|
||||||
|
edit_select.origy = y;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LayerTranslate:
|
case LayerTranslate:
|
||||||
|
@ -379,6 +402,15 @@ edit_selection_motion (Tool *tool,
|
||||||
floating_sel_rigor (floating_layer, TRUE);
|
floating_sel_rigor (floating_layer, TRUE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case MaskToLayerTranslate:
|
||||||
|
gimage_mask_float (gdisp->gimage, gimage_active_drawable (gdisp->gimage),
|
||||||
|
0, 0);
|
||||||
|
edit_select.edit_type = FloatingSelTranslate;
|
||||||
|
|
||||||
|
edit_select.origx -= edit_select.x1;
|
||||||
|
edit_select.origy -= edit_select.y1;
|
||||||
|
break;
|
||||||
|
|
||||||
case FloatingSelTranslate:
|
case FloatingSelTranslate:
|
||||||
layer = gimage_get_active_layer (gdisp->gimage);
|
layer = gimage_get_active_layer (gdisp->gimage);
|
||||||
|
|
||||||
|
@ -447,7 +479,8 @@ edit_selection_draw (Tool *tool)
|
||||||
gdisp = (GDisplay *) tool->gdisp_ptr;
|
gdisp = (GDisplay *) tool->gdisp_ptr;
|
||||||
select = gdisp->select;
|
select = gdisp->select;
|
||||||
|
|
||||||
if (edit_select.edit_type == FloatingSelTranslate)
|
if (edit_select.edit_type == FloatingSelTranslate ||
|
||||||
|
edit_select.edit_type == MaskTranslate)
|
||||||
{
|
{
|
||||||
diff_x = SCALEX (gdisp, edit_select.cumlx);
|
diff_x = SCALEX (gdisp, edit_select.cumlx);
|
||||||
diff_y = SCALEY (gdisp, edit_select.cumly);
|
diff_y = SCALEY (gdisp, edit_select.cumly);
|
||||||
|
|
|
@ -285,6 +285,25 @@ edit_selection_button_release (Tool *tool,
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
if (edit_select.cumlx == 0 && edit_select.cumly == 0)
|
||||||
|
{
|
||||||
|
/* The user either didn't actually move the selection,
|
||||||
|
or moved it around and eventually just put it back in
|
||||||
|
exactly the same spot. */
|
||||||
|
|
||||||
|
if ((edit_select.edit_type == MaskTranslate) ||
|
||||||
|
(edit_select.edit_type == MaskToLayerTranslate))
|
||||||
|
gimage_mask_clear (gdisp->gimage);
|
||||||
|
/* if no movement occured and the type is LayerTranslate,
|
||||||
|
check if the layer is a floating selection. If so, anchor. */
|
||||||
|
else if (edit_select.edit_type == FloatingSelTranslate)
|
||||||
|
{
|
||||||
|
layer = gimage_get_active_layer (gdisp->gimage);
|
||||||
|
if (layer_is_floating_sel (layer))
|
||||||
|
floating_sel_anchor (layer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
undo_push_group_end (gdisp->gimage);
|
undo_push_group_end (gdisp->gimage);
|
||||||
|
|
||||||
if (bevent->state & GDK_BUTTON2_MASK) /* OPERATION CANCELLED */
|
if (bevent->state & GDK_BUTTON2_MASK) /* OPERATION CANCELLED */
|
||||||
|
@ -351,11 +370,15 @@ edit_selection_motion (Tool *tool,
|
||||||
case MaskTranslate:
|
case MaskTranslate:
|
||||||
/* translate the selection */
|
/* translate the selection */
|
||||||
gimage_mask_translate (gdisp->gimage, xoffset, yoffset);
|
gimage_mask_translate (gdisp->gimage, xoffset, yoffset);
|
||||||
break;
|
/*g_warning("%d,%d %d,%d %d,%d %d,%d %d,%d %d,%d",
|
||||||
|
edit_select.origx,edit_select.origy,
|
||||||
case MaskToLayerTranslate:
|
edit_select.cumlx,edit_select.cumly,
|
||||||
gimage_mask_float (gdisp->gimage, gimage_active_drawable (gdisp->gimage),
|
xoffset,yoffset,
|
||||||
xoffset, yoffset);
|
x,y,
|
||||||
|
edit_select.x1,edit_select.y1,
|
||||||
|
edit_select.x2,edit_select.y2);*/
|
||||||
|
edit_select.origx = x;
|
||||||
|
edit_select.origy = y;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LayerTranslate:
|
case LayerTranslate:
|
||||||
|
@ -379,6 +402,15 @@ edit_selection_motion (Tool *tool,
|
||||||
floating_sel_rigor (floating_layer, TRUE);
|
floating_sel_rigor (floating_layer, TRUE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case MaskToLayerTranslate:
|
||||||
|
gimage_mask_float (gdisp->gimage, gimage_active_drawable (gdisp->gimage),
|
||||||
|
0, 0);
|
||||||
|
edit_select.edit_type = FloatingSelTranslate;
|
||||||
|
|
||||||
|
edit_select.origx -= edit_select.x1;
|
||||||
|
edit_select.origy -= edit_select.y1;
|
||||||
|
break;
|
||||||
|
|
||||||
case FloatingSelTranslate:
|
case FloatingSelTranslate:
|
||||||
layer = gimage_get_active_layer (gdisp->gimage);
|
layer = gimage_get_active_layer (gdisp->gimage);
|
||||||
|
|
||||||
|
@ -447,7 +479,8 @@ edit_selection_draw (Tool *tool)
|
||||||
gdisp = (GDisplay *) tool->gdisp_ptr;
|
gdisp = (GDisplay *) tool->gdisp_ptr;
|
||||||
select = gdisp->select;
|
select = gdisp->select;
|
||||||
|
|
||||||
if (edit_select.edit_type == FloatingSelTranslate)
|
if (edit_select.edit_type == FloatingSelTranslate ||
|
||||||
|
edit_select.edit_type == MaskTranslate)
|
||||||
{
|
{
|
||||||
diff_x = SCALEX (gdisp, edit_select.cumlx);
|
diff_x = SCALEX (gdisp, edit_select.cumlx);
|
||||||
diff_y = SCALEY (gdisp, edit_select.cumly);
|
diff_y = SCALEY (gdisp, edit_select.cumly);
|
||||||
|
|
Loading…
Reference in New Issue