public boolean updateCaretBoundsIndirect() {
		Bounds bounds = lastCaretBounds;
		if (bounds == null)
			return false;

		// The caret bounds can de-sync in some weird cases, so we're better off indirectly computing the current Y position
		// of the caret by looking at the paragraph's bounds the caret resides in.
		Optional<Bounds> paragraphBoundsOnScreen = area.getParagraphBoundsOnScreen(Math.min(area.getCurrentParagraph(), area.lastVisibleParToAllParIndex()));
		if (paragraphBoundsOnScreen.isPresent()) {
			Bounds paragraphBounds = paragraphBoundsOnScreen.get();
			lastCaretBounds = new BoundingBox(bounds.getMinX(), paragraphBounds.getMinY(), bounds.getWidth(), bounds.getHeight());
			return true;
		}

		return false;
	}
@return {@code true} when the bounds were updated successfully.
recaf-ui/src/main/java/software/coley/recaf/ui/control/richtext/suggest/CompletionPopup.java