public boolean dropon(Widget w, Coord c) {
		for (Widget wdg = w.lchild; wdg != null; wdg = wdg.prev) {
			if (wdg == this)
				continue;
			Coord cc = w.xlate(wdg.c, true);
			if (c.isect(cc, (wdg.hsz == null) ? wdg.sz : wdg.hsz)) {
				if (dropon(wdg, c.add(cc.inv())))
					return (true);
			}
		}
		if (w instanceof DTarget) {
			if (((DTarget) w).drop(c, c.add(doff.inv())))
				return (true);
		}
		if (w instanceof DTarget2) {
			if (((DTarget2) w).drop(c, c.add(doff.inv()), this))
				return (true);
		}
		return (false);
	}