Bug 488771. Stop nsIScrollPositionListener from inheriting from nsISupports. r=roc

--HG--
extra : rebase_source : bb93c56b3347bc8df7fd843f08e2d5dfc4f3071b
This commit is contained in:
Timothy Nikkel 2010-01-28 18:03:42 -06:00
parent 52560027f4
commit 6c427678c3
9 changed files with 20 additions and 68 deletions

View File

@ -166,7 +166,6 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(nsDocAccessible)
NS_INTERFACE_MAP_ENTRY(nsIAccessibleDocument)
NS_INTERFACE_MAP_ENTRY(nsIDocumentObserver)
NS_INTERFACE_MAP_ENTRY(nsIMutationObserver)
NS_INTERFACE_MAP_ENTRY(nsIScrollPositionListener)
NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference)
NS_INTERFACE_MAP_ENTRY(nsIObserver)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIAccessibleDocument)
@ -955,12 +954,7 @@ void nsDocAccessible::RemoveScrollListener()
////////////////////////////////////////////////////////////////////////////////
// nsIScrollPositionListener
NS_IMETHODIMP nsDocAccessible::ScrollPositionWillChange(nscoord aX, nscoord aY)
{
return NS_OK;
}
NS_IMETHODIMP nsDocAccessible::ScrollPositionDidChange(nscoord aX, nscoord aY)
void nsDocAccessible::ScrollPositionDidChange(nscoord aX, nscoord aY)
{
// Start new timer, if the timer cycles at least 1 full cycle without more scroll position changes,
// then the ::Notify() method will fire the accessibility event for scroll position changes
@ -978,7 +972,6 @@ NS_IMETHODIMP nsDocAccessible::ScrollPositionDidChange(nscoord aX, nscoord aY)
}
}
mScrollPositionChangedTicks = 1;
return NS_OK;
}
////////////////////////////////////////////////////////////////////////////////

View File

@ -90,9 +90,8 @@ public:
NS_IMETHOD TakeFocus(void);
// nsIScrollPositionListener
NS_IMETHOD ScrollPositionWillChange(nscoord aX, nscoord aY);
virtual void ViewPositionDidChange(nsTArray<nsIWidget::Configuration>* aConfigurations) {}
NS_IMETHOD ScrollPositionDidChange(nscoord aX, nscoord aY);
virtual void ScrollPositionWillChange(nscoord aX, nscoord aY) {}
virtual void ScrollPositionDidChange(nscoord aX, nscoord aY);
// nsIDocumentObserver
NS_DECL_NSIDOCUMENTOBSERVER

View File

@ -77,8 +77,6 @@ NS_NewCanvasFrame(nsIPresShell* aPresShell, nsStyleContext* aContext)
NS_IMPL_FRAMEARENA_HELPERS(nsCanvasFrame)
NS_IMPL_QUERY_INTERFACE1(nsCanvasFrame, nsIScrollPositionListener)
NS_QUERYFRAME_HEAD(nsCanvasFrame)
NS_QUERYFRAME_ENTRY(nsCanvasFrame)
NS_QUERYFRAME_TAIL_INHERITING(nsHTMLContainerFrame)
@ -113,20 +111,13 @@ nsCanvasFrame::DestroyFrom(nsIFrame* aDestructRoot)
nsHTMLContainerFrame::DestroyFrom(aDestructRoot);
}
NS_IMETHODIMP
void
nsCanvasFrame::ScrollPositionWillChange(nscoord aX, nscoord aY)
{
if (mDoPaintFocus) {
mDoPaintFocus = PR_FALSE;
PresContext()->FrameManager()->GetRootFrame()->InvalidateOverflowRect();
}
return NS_OK;
}
NS_IMETHODIMP
nsCanvasFrame::ScrollPositionDidChange(nscoord aX, nscoord aY)
{
return NS_OK;
}
NS_IMETHODIMP

View File

@ -70,8 +70,6 @@ public:
NS_DECL_QUERYFRAME
NS_DECL_FRAMEARENA_HELPERS
// nsISupports (nsIScrollPositionListener)
NS_IMETHOD QueryInterface(const nsIID& aIID, void** aInstancePtr);
NS_IMETHOD Init(nsIContent* aContent,
nsIFrame* aParent,
@ -116,12 +114,8 @@ public:
void PaintFocus(nsIRenderingContext& aRenderingContext, nsPoint aPt);
// nsIScrollPositionListener
NS_IMETHOD ScrollPositionWillChange(nscoord aX, nscoord aY);
// The scrollframe implementation of this method appends a list of widget
// configuration requests to aConfigurations. No other implementor
// should touch it. No longer gets called!!!
virtual void ViewPositionDidChange(nsTArray<nsIWidget::Configuration>* aConfigurations) {}
NS_IMETHOD ScrollPositionDidChange(nscoord aX, nscoord aY);
virtual void ScrollPositionWillChange(nscoord aX, nscoord aY);
virtual void ScrollPositionDidChange(nscoord aX, nscoord aY) {}
/**
* Get the "type" of the frame
@ -160,10 +154,6 @@ protected:
// Data members
PRPackedBool mDoPaintFocus;
nsAbsoluteContainingBlock mAbsoluteContainer;
private:
NS_IMETHOD_(nsrefcnt) AddRef() { return NS_OK; }
NS_IMETHOD_(nsrefcnt) Release() { return NS_OK; }
};
#endif /* nsCanvasFrame_h___ */

View File

@ -1772,7 +1772,7 @@ nsGfxScrollFrameInner::ScrollToImpl(nsPoint aPt)
"curPos.y not a multiple of device pixels");
// notify the listeners.
for (PRInt32 i = 0; i < mListeners.Count(); i++) {
for (PRInt32 i = 0; i < mListeners.Length(); i++) {
mListeners[i]->ScrollPositionWillChange(pt.x, pt.y);
}
@ -1787,7 +1787,7 @@ nsGfxScrollFrameInner::ScrollToImpl(nsPoint aPt)
PostScrollEvent();
// notify the listeners.
for (PRInt32 i = 0; i < mListeners.Count(); i++) {
for (PRInt32 i = 0; i < mListeners.Length(); i++) {
mListeners[i]->ScrollPositionDidChange(pt.x, pt.y);
}
}

View File

@ -168,10 +168,10 @@ public:
}
void AddScrollPositionListener(nsIScrollPositionListener* aListener) {
mListeners.AppendObject(aListener);
mListeners.AppendElement(aListener);
}
void RemoveScrollPositionListener(nsIScrollPositionListener* aListener) {
mListeners.RemoveObject(aListener);
mListeners.RemoveElement(aListener);
}
static void SetScrollbarVisibility(nsIBox* aScrollbar, PRBool aVisible);
@ -232,7 +232,7 @@ public:
nsIBox* mScrollCornerBox;
nsContainerFrame* mOuter;
AsyncScroll* mAsyncScroll;
nsCOMArray<nsIScrollPositionListener> mListeners;
nsTArray<nsIScrollPositionListener*> mListeners;
nsRect mScrollPort;
// Where we're currently scrolling to, if we're scrolling asynchronously.
// If we're not in the middle of an asynchronous scroll then this is

View File

@ -331,9 +331,8 @@ public:
void SendIdleEvent();
// nsIScrollPositionListener interface
NS_IMETHOD ScrollPositionWillChange(nscoord aX, nscoord aY);
virtual void ViewPositionDidChange(nsTArray<nsIWidget::Configuration>* aConfigurations) {}
NS_IMETHOD ScrollPositionDidChange(nscoord aX, nscoord aY);
virtual void ScrollPositionWillChange(nscoord aX, nscoord aY);
virtual void ScrollPositionDidChange(nscoord aX, nscoord aY);
//locals
@ -2545,7 +2544,6 @@ NS_INTERFACE_MAP_BEGIN(nsPluginInstanceOwner)
NS_INTERFACE_MAP_ENTRY(nsIDOMMouseMotionListener)
NS_INTERFACE_MAP_ENTRY(nsIDOMKeyListener)
NS_INTERFACE_MAP_ENTRY(nsIDOMFocusListener)
NS_INTERFACE_MAP_ENTRY(nsIScrollPositionListener)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsIDOMEventListener, nsIDOMMouseListener)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIPluginInstanceOwner)
NS_INTERFACE_MAP_END
@ -3580,11 +3578,11 @@ nsPluginInstanceOwner::GetEventloopNestingLevel()
return currentLevel;
}
nsresult nsPluginInstanceOwner::ScrollPositionWillChange(nscoord aX, nscoord aY)
void nsPluginInstanceOwner::ScrollPositionWillChange(nscoord aX, nscoord aY)
{
#ifdef MAC_CARBON_PLUGINS
if (GetEventModel() != NPEventModelCarbon)
return NS_OK;
return;
CancelTimer();
@ -3604,14 +3602,13 @@ nsresult nsPluginInstanceOwner::ScrollPositionWillChange(nscoord aX, nscoord aY)
}
}
#endif
return NS_OK;
}
nsresult nsPluginInstanceOwner::ScrollPositionDidChange(nscoord aX, nscoord aY)
void nsPluginInstanceOwner::ScrollPositionDidChange(nscoord aX, nscoord aY)
{
#ifdef MAC_CARBON_PLUGINS
if (GetEventModel() != NPEventModelCarbon)
return NS_OK;
return;
if (mInstance) {
nsCOMPtr<nsIPluginWidget> pluginWidget = do_QueryInterface(mWidget);
@ -3629,7 +3626,6 @@ nsresult nsPluginInstanceOwner::ScrollPositionDidChange(nscoord aX, nscoord aY)
}
}
#endif
return NS_OK;
}
/*=============== nsIFocusListener ======================*/

View File

@ -132,7 +132,6 @@ public:
nsIScrollableFrame_id,
nsIScrollbarFrame_id,
nsIScrollbarMediator_id,
nsIScrollPositionListener_id,
nsISelectControlFrame_id,
nsIStatefulFrame_id,
nsITableCellLayout_id,

View File

@ -40,34 +40,18 @@
#ifndef nsIScrollPositionListener_h___
#define nsIScrollPositionListener_h___
#include "nsISupports.h"
#include "nsCoord.h"
#include "nsTArray.h"
#include "nsIWidget.h"
// IID for the nsIScrollPositionListener interface
#define NS_ISCROLLPOSITIONLISTENER_IID \
{ 0x20b82adf, 0x1f5c, 0x44f7, \
{ 0x9b, 0x74, 0xc0, 0xa3, 0x14, 0xd8, 0xcf, 0x91 } }
/**
* Provides a way for a client of an nsIScrollableView to learn about scroll position
* changes.
*/
class nsIScrollPositionListener : public nsISupports {
class nsIScrollPositionListener {
public:
NS_DECLARE_STATIC_IID_ACCESSOR(NS_ISCROLLPOSITIONLISTENER_IID)
NS_IMETHOD ScrollPositionWillChange(nscoord aX, nscoord aY) = 0;
// The scrollframe implementation of this method appends a list of widget
// configuration requests to aConfigurations. No other implementor
// should touch it. No longer gets called!!!
virtual void ViewPositionDidChange(nsTArray<nsIWidget::Configuration>* aConfigurations) = 0;
NS_IMETHOD ScrollPositionDidChange(nscoord aX, nscoord aY) = 0;
virtual void ScrollPositionWillChange(nscoord aX, nscoord aY) = 0;
virtual void ScrollPositionDidChange(nscoord aX, nscoord aY) = 0;
};
NS_DEFINE_STATIC_IID_ACCESSOR(nsIScrollPositionListener,
NS_ISCROLLPOSITIONLISTENER_IID)
#endif /* nsIScrollPositionListener_h___ */