fix infinite Fit To Width loop CVS: ---------------------------------------------------------------------- CVS: Enter Log. Lines beginning with `CVS:' are removed automatically CVS: CVS: Committing in . CVS: CVS: Modified Files: CVS: src/af/xap/unix/xap_UnixFrameImpl.cpp CVS: src/af/xap/xp/xap_Preview.cpp src/af/xap/xp/xap_Preview.h CVS: src/af/xap/xp/xav_View.cpp src/af/xap/xp/xav_View.h CVS: src/text/fmt/xp/fv_View.cpp src/text/fmt/xp/fv_View_cmd.cpp CVS: src/text/fmt/xp/fv_View_protected.cpp CVS: ----------------------------------------------------------------------
This was a bit tricky. There was a race condition involved, among other things. But it's fixed now, for the most part (sometimes you don't quite get the whole width of the txt on the screen. I think it's due to rounding.) It certainly won't loop anymore. Note that xav_View::getWindowWidth() is a tricky piece of code. It returns an answer in layout units, but can only take input in display units. Furthermore, when you change the zoom, getWindowWidth() can easily go wrong. I stored m_dOneTDU in AV_View to get around this. Not optimal, but it works. As Martin points out, we don't need to blow away the view anymore when we change zooms. There's some crufty code currently that deals with this in xav_UnixFrameImpl::_fe::do_ZoomUpdate. Once we update the code, we can decruftify this code. pat
