One correction to the previous commit to restore the original
behavior when a child coordinate is not specified; otherwise, the original code's setting of the child reference point to the bounding box lower left causes the lower left point to be used always, which is not how the getcell command is supposed to function.
This commit is contained in:
parent
7f5571768f
commit
b08c785c1d
|
|
@ -4814,7 +4814,7 @@ cmdDumpParseArgs(cmdName, w, cmd, dummy, scx)
|
|||
* cell itself.
|
||||
*/
|
||||
{
|
||||
Point childPoint, editPoint, rootPoint, refpoint;
|
||||
Point childPoint, editPoint, rootPoint;
|
||||
CellDef *def, *rootDef, *editDef;
|
||||
bool hasChild, hasRoot, hasTrans;
|
||||
Rect rootBox, bbox;
|
||||
|
|
@ -5254,9 +5254,19 @@ box_error:
|
|||
scx->scx_use = dummy;
|
||||
|
||||
/* Transform childPoint by trans_cell */
|
||||
GeoTransPoint(&trans_cell, &childPoint, &refpoint);
|
||||
GeoTranslateTrans(&trans_cell, rootPoint.p_x - refpoint.p_x,
|
||||
if (hasChild)
|
||||
{
|
||||
Point refpoint;
|
||||
|
||||
GeoTransPoint(&trans_cell, &childPoint, &refpoint);
|
||||
GeoTranslateTrans(&trans_cell, rootPoint.p_x - refpoint.p_x,
|
||||
rootPoint.p_y - refpoint.p_y, &scx->scx_trans);
|
||||
}
|
||||
else
|
||||
{
|
||||
GeoTranslateTrans(&trans_cell, rootPoint.p_x - childPoint.p_x,
|
||||
rootPoint.p_y - childPoint.p_y, &scx->scx_trans);
|
||||
}
|
||||
|
||||
scx->scx_area = bbox;
|
||||
return TRUE;
|
||||
|
|
|
|||
Loading…
Reference in New Issue