Back to index

lightning-sunbird  0.9+nobinonly
Public Member Functions | Public Attributes
ReflowEvent Struct Reference
Inheritance diagram for ReflowEvent:
Inheritance graph
[legend]
Collaboration diagram for ReflowEvent:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ReflowEvent (nsIPresShell *aPresShell)
 ~ReflowEvent ()
void HandleEvent ()

Public Attributes

nsWeakPtr mPresShell
PRCList link
PLHandleEventProc handler
PLDestroyEventProc destructor
voidowner
voidsynchronousResult
PRLocklock
PRCondVarcondVar
PRBool handled

Detailed Description

Definition at line 6896 of file nsPresShell.cpp.


Constructor & Destructor Documentation

Definition at line 6947 of file nsPresShell.cpp.

{
  NS_ASSERTION(aPresShell, "Null parameters!");  

  mPresShell = do_GetWeakReference(aPresShell);

  PL_InitEvent(this, aPresShell,
               (PLHandleEventProc) ::HandlePLEvent,
               (PLDestroyEventProc) ::DestroyPLEvent);  
}

Here is the call graph for this function:

Definition at line 6898 of file nsPresShell.cpp.

{ }

Member Function Documentation

Definition at line 6900 of file nsPresShell.cpp.

                     {    
    nsCOMPtr<nsIPresShell> presShell = do_QueryReferent(mPresShell);
    if (presShell) {
#ifdef DEBUG
      if (VERIFY_REFLOW_NOISY_RC & gVerifyReflowFlags) {
         printf("\n*** Handling reflow event: PresShell=%p, event=%p\n", (void*)presShell.get(), (void*)this);
      }
#endif
      // XXX Statically cast the pres shell pointer so that we can call
      // protected methods on the pres shell. (the ReflowEvent struct
      // is a friend of the PresShell class)
      PresShell* ps = NS_REINTERPRET_CAST(PresShell*, presShell.get());
      PRBool isBatching;
      ps->ClearReflowEventStatus();
      ps->GetReflowBatchingStatus(&isBatching);
      if (!isBatching) {
        // Set a kung fu death grip on the view manager associated with the pres shell
        // before processing that pres shell's reflow commands.  Fixes bug 54868.
        nsCOMPtr<nsIViewManager> viewManager = presShell->GetViewManager();

        viewManager->BeginUpdateViewBatch();
        ps->ProcessReflowCommands(PR_TRUE);
        viewManager->EndUpdateViewBatch(NS_VMREFRESH_NO_SYNC);

        // Now, explicitly release the pres shell before the view manager
        presShell = nsnull;
        viewManager = nsnull;
      }
    }
    else
      mPresShell = 0;
  }

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

PRCondVar * PLEvent::condVar [inherited]

Definition at line 514 of file nsIEventQueueService.idl.

Definition at line 510 of file nsIEventQueueService.idl.

PRBool PLEvent::handled [inherited]

Definition at line 515 of file nsIEventQueueService.idl.

Definition at line 509 of file nsIEventQueueService.idl.

PRCList PLEvent::link [inherited]

Definition at line 508 of file nsIEventQueueService.idl.

PRLock * PLEvent::lock [inherited]

Definition at line 513 of file nsIEventQueueService.idl.

Definition at line 6933 of file nsPresShell.cpp.

void * PLEvent::owner [inherited]

Definition at line 511 of file nsIEventQueueService.idl.

Definition at line 512 of file nsIEventQueueService.idl.


The documentation for this struct was generated from the following file: