[gta02-core] fped: click-to-select finally makes sense (maybe)

Werner Almesberger werner at openmoko.org
Tue Jan 12 03:40:04 CET 2010

I just checked in a fairly complicated (yet long overdue)
enhancement to fped and I'd appreciate feedback if this breaks

So far, clicking on an instance that wasn't active didn't highlight
this instance. Instead, it activated the instance of the underlying
object that corresponded to the current table row, loop, and frame
reference selections.  

This was rather confusing, because you clicked on one thing and
something - apparently - hardly related was activated. The new code
tries to adjust these activations such that indeed the instance
clicked on becomes active.

As an example, load wlcsp-12.fpd. If using a version of fped before
revision 5792, click on any pad, no matter which, and A1 will light
up. If you change balls.row or balls.cname, some other pad will
light up, but it will still always be the same, no matter which pad
you click on.

With revision 5792 and beyond, the pad you clicked on will light up
and balls.row and balls.cname will be adjusted accordingly.

An even more mystifying example was stdpass.fpd: if the active
package and the row in root.name didn't agree, nothing but the
measurements could be activated or selected. Now, selection adjusts
the row of root.name and things work in an more intuitive way.

If the selection mechanism can't figure out what to do, fped will
print "__inst_select: tries exhausted". I would expect this to
happen from time to time if elements are placed on top of each
other or if clicking on a crowd of items while zoomed out very far.
However, if the target isn't ambiguous, fped should never fail to
select the instance clicked on. If it does, please holler.

- Werner

More information about the gta02-core mailing list