There's also the new zoom code, which has a small chunk of code
(in each platform's frame) to handle finding the cursor position
and centering on it when the zoom is complete (so you don't
wrap back to page 1 each time you change magnification).
The Find & Replace algorithm is simple... you set the string (in the
view) and call findNext() and it does:
        if (!isSelectionEmpty())
        {
                _clearSelection();
        }
        else
        {
                _eraseInsertionPoint();
        }
        UT_Bool bRes = _findNext(find, matchCase, bDoneEntireDocument);
        if (isSelectionEmpty())
        {
                if (!_ensureThatInsertionPointIsOnScreen())
                {
                        _fixInsertionPointCoords();
                        _drawInsertionPoint();
                }
        }
        else
        {
                _ensureThatInsertionPointIsOnScreen();
                _drawSelection();
        }
Most of those functions are members of FV_View.  Find them in
abi/src/text/fmt/xp/fv_View.cpp.
-- Shaw Terwilliger