private boolean doCursorDown(EventTrigger trigger) {
			if (!cursorOn) {
				scrollLineDown();
				return true;
			}
			scrollToCursor();

			AnchoredLayout layout = findLayoutOnScreen(cursorPosition.getIndex());
			if (layout == null) {
				return false;
			}

			if (!layout.cursorDown(cursorPosition, lastX)) {

				int yPos = layout.getYPos() + layout.getHeight();
				layout = findLayoutAt(yPos);

				if (layout == null) {
					if (yPos >= getHeight()) {
						scrollView(yPos - getHeight() + 1);
						yPos = getHeight();
					}
					layout = findLayoutAt(yPos);
				}
				if (layout == null) {
					return false;
				}
				layout.setCursor(cursorPosition, lastX, yPos);
			}
			currentField = layout.getField(cursorPosition.fieldNum);
			scrollToCursor();
			repaint();
			notifyCursorChanged(trigger);
			return true;
		}
Sets the cursor as close to the given point as possible.

@param x the horizontal coordinate.
@param y the vertical coordinate.
Ghidra/Framework/Docking/src/main/java/docking/widgets/fieldpanel/FieldPanel.java