Prevent the invalidation of hidden views (1/2 patch from <Tomi.Leppikangas@oulu.fi> b=34466 r=buster@netscape.com
Prevent ViewManager1 from getting into endless loops (patch from <jst@citec.fi> b=25336 r=buster@netscape.com
tested=WINNT, Linux, Mac
r=troy@netscape.com,kipp@netscape.com,evaughan@netscape.com,beard@netscape.com
layout/html/base/src/nsGfxScrollFrame.cpp
- Renamed all occurrences of ScrollPositionChanged() to
to ScrollPositionDidChange() to match changes made
to nsIScrollPositionListener.
- Added ScrollPositionWillChange() stub method.
layout/html/base/src/nsPresShell.cpp
- Added PresShellViewEventListener class that implements the
nsIScrollPositionListener and nsICompositeListener view
interfaces. This allows us to turn caret rendering on and off
when scrolling and repainting to prevent leaving caret cruft
on the screen.
- PresShellViewEventListener is created in InitialReflow(), and
released in ~PresShell().
view/public/Makefile.in
view/public/makefile.win
view/public/MANIFEST
- Added nsICompositeListener to list of files to be exported.
view/public/nsICompositeListener.h
- New file. Implementers of this interface can register themselves
with the view manager to receive notification before and after
a view is composited/refreshed.
view/public/nsIScrollPositionListener.h
- Added a ScrollPositionWillChange() method.
- Changed ScrollPositionChanged() to ScrollPositionDidChange().
view/public/nsIViewManager.h
- Added AddCompositeListener() and RemoveCompositeListener methods.
view/src/nsScrollingView.cpp
view/src/nsScrollingView.h
- Added NotifyScrollPositionWillChange() and
NotifyScrollPositionDidChange() methods.
- Modified HandleScrollEvent() to call NotifyScrollPositionWill/DidChange()
methods. Added temporary offsetX and offsetY variables to allow us
to calculate new offsets without changing mOffsetX and mOffsetY before
notifications are sent out.
view/src/nsScrollPortView.cpp
- Changed ScrollPositionChanged() to ScrollPositionDidChange().
- Modified ScrollTo() to call the listener's ScrollPositionWillChange()
method.
view/src/nsViewManager.cpp
view/src/nsViewManager.h
- Added AddCompositeListener() and RemoveCompositeListener() methods.
- Added support for CompositeListener notifications in the Refresh()
methods for regions and rects.
- Fix for bug #15901: [DOGFOOD] Selected text does not clear when you type
Modified UpdateView() so that rects with zero width and height are
no longer added to our damage region.
r=beard@netscape.com