diff -uNr sd.old/source/ui/view/drviews8.cxx sd.new/source/ui/view/drviews8.cxx --- sd.old/source/ui/view/drviews8.cxx 2006-11-01 19:04:32.000000000 +0800 +++ sd.new/source/ui/view/drviews8.cxx 2007-02-06 13:57:00.000000000 +0800 @@ -322,6 +322,20 @@ break; case SID_ZOOM_OUT: + { + bZoomOnPage = FALSE; + SetZoom( Min( (long) ( GetActiveWindow()->GetZoom() * 2 ), (long) GetActiveWindow()->GetMaxZoom() ) ); + Rectangle aVisAreaWin = GetActiveWindow()->PixelToLogic( Rectangle( Point(0,0), + GetActiveWindow()->GetOutputSizePixel()) ); + pZoomList->InsertZoomRect(aVisAreaWin); + Invalidate( SID_ZOOM_IN ); + Invalidate( SID_ZOOM_OUT ); + Invalidate( SID_ZOOM_PANNING ); + Invalidate( SID_ZOOM_TOOLBOX ); + rReq.Ignore (); + + } + break; case SID_ZOOM_PANNING: { bZoomOnPage = FALSE; diff -uNr sd.old/source/ui/view/outlnvs2.cxx sd.new/source/ui/view/outlnvs2.cxx --- sd.old/source/ui/view/outlnvs2.cxx 2006-11-01 19:04:34.000000000 +0800 +++ sd.new/source/ui/view/outlnvs2.cxx 2007-02-06 13:57:24.000000000 +0800 @@ -210,9 +210,15 @@ case SID_ZOOM_OUT: { - SetCurrentFunction( FuZoom::Create(this, GetActiveWindow(), pOlView, GetDoc(), rReq) ); - // Beendet sich selbst, kein Cancel() notwendig! - rReq.Done(); + SetZoom( Max( (long) ( GetActiveWindow()->GetZoom() * 2 ), (long) GetActiveWindow()->GetMinZoom() ) ); + Rectangle aVisAreaWin = GetActiveWindow()->PixelToLogic( Rectangle( Point(0,0), + GetActiveWindow()->GetOutputSizePixel()) ); + pZoomList->InsertZoomRect(aVisAreaWin); + Invalidate( SID_ATTR_ZOOM ); + Invalidate( SID_ZOOM_OUT); + Invalidate( SID_ZOOM_IN ); + Cancel(); + rReq.Done(); } break;