M src/wp/ap/unix/ap_UnixFrame.cpp
  M src/wp/ap/win/ap_Win32Frame.cpp
  M src/wp/ap/xp/ap_EditMethods.cpp
  M src/wp/fmt/xp/fl_DocLayout.cpp
  M src/wp/fmt/xp/fp_Line.cpp
  M src/wp/fmt/xp/fv_View.cpp
  M src/xap/unix/xap_UnixFrame.h
  M src/xap/win/xap_Win32Frame.cpp
  M src/xap/win/xap_Win32Frame.h
  M src/xap/xp/xap_Frame.h
  M src/xap/xp/xap_Scrollbar_ViewListener.cpp
  M src/xap/xp/xav_View.cpp
  M src/xap/xp/xav_View.h
It's embarrassing that we didn't do this a long time ago.
A few notes:
1.  I'm pretty happy with how this works on NT, and I tried to stub in 
everything needed for Unix, but all I can guarantee is that it builds 
cleanly.  If the necessary fixes aren't obvious, let me know. 
2.  The FV_View::_ensureThatInsertionPointIsOnScreen() logic could use a bit 
more tinkering.  Right now, it does force the IP to be visible, but just 
barely.  Try a narrow window on src/wp/samples/Interview.abw and you'll see 
what I mean.  However, I'm not sure exactly what we want here.  Should it 
just add some padding, or should it try to bring the entire word or line 
on-screen?  Ditto for single-column documents. 
3.  Due to header file changes in abi/src/xap, a clean build of the entire 
tree is highly recommended.
Enjoy!
Paul