This commit is contained in:
roc+%cs.cmu.edu 2006-03-14 21:02:42 +00:00
Родитель afd67b7db1
Коммит 4a3998fc32
1 изменённых файлов: 12 добавлений и 25 удалений

Просмотреть файл

@ -69,6 +69,7 @@
#include "nsXPCOM.h"
#include "nsISupportsPrimitives.h"
#include "nsIComponentManager.h"
#include "nsContentUtils.h"
#include "nsITextContent.h"
#include "nsTextFragment.h"
#include "nsCSSFrameConstructor.h"
@ -405,20 +406,6 @@ NS_IMETHODIMP nsComboboxControlFrame::GetAccessible(nsIAccessible** aAccessible)
}
#endif
NS_IMETHODIMP
nsComboboxControlFrame::Init(nsPresContext* aPresContext,
nsIContent* aContent,
nsIFrame* aParent,
nsStyleContext* aContext,
nsIFrame* aPrevInFlow)
{
mEventQueueService = do_GetService(kEventQueueServiceCID);
return nsAreaFrame::Init(aPresContext, aContent, aParent, aContext, aPrevInFlow);
}
void
nsComboboxControlFrame::SetFocus(PRBool aOn, PRBool aRepaint)
{
@ -1601,12 +1588,13 @@ nsComboboxControlFrame::RedisplayText(PRInt32 aIndex)
// Send reflow command because the new text maybe larger
nsresult rv = NS_OK;
if (mDisplayContent && mEventQueueService) {
if (mDisplayContent) {
// Don't call ActuallyDisplayText(PR_TRUE) directly here since that
// could cause recursive frame construction. See bug 283117 and the comment in
// HandleRedisplayTextEvent() below.
nsCOMPtr<nsIEventQueue> eventQueue;
rv = mEventQueueService->GetSpecialEventQueue(nsIEventQueueService::UI_THREAD_EVENT_QUEUE,
rv = nsContentUtils::EventQueueService()->
GetSpecialEventQueue(nsIEventQueueService::UI_THREAD_EVENT_QUEUE,
getter_AddRefs(eventQueue));
if (eventQueue) {
RedisplayTextEvent* event = new RedisplayTextEvent(this);
@ -1954,14 +1942,13 @@ NS_IMETHODIMP
nsComboboxControlFrame::Destroy(nsPresContext* aPresContext)
{
// Revoke queued RedisplayTextEvents
if (mEventQueueService) {
nsCOMPtr<nsIEventQueue> eventQueue;
mEventQueueService->GetSpecialEventQueue(nsIEventQueueService::UI_THREAD_EVENT_QUEUE,
nsContentUtils::EventQueueService()->
GetSpecialEventQueue(nsIEventQueueService::UI_THREAD_EVENT_QUEUE,
getter_AddRefs(eventQueue));
if (eventQueue) {
eventQueue->RevokeEvents(this);
}
}
nsFormControlFrame::RegUnRegAccessKey(GetPresContext(), NS_STATIC_CAST(nsIFrame*, this), PR_FALSE);
@ -2089,8 +2076,8 @@ public:
void nsDisplayComboboxFocus::Paint(nsDisplayListBuilder* aBuilder,
nsIRenderingContext* aCtx, const nsRect& aDirtyRect)
{
NS_STATIC_CAST(nsComboboxControlFrame*, mFrame)->
PaintFocus(*aCtx, aBuilder->ToReferenceFrame(mFrame));
NS_STATIC_CAST(nsComboboxControlFrame*, mFrame)
->PaintFocus(*aCtx, aBuilder->ToReferenceFrame(mFrame));
}
NS_IMETHODIMP