void nsBlinkTimer::Notify(nsITimer *timer)
NS_IMETHODIMP_(void) nsBlinkTimer::Notify(nsITimer *timer)
void nsBlinkTimer::Notify(nsITimer *timer){  // Toggle blink state bit so that text code knows whether or not to  // render. All text code shares the same flag so that they all blink  // in unison.  gBlinkTextOff = PRBool(!gBlinkTextOff);  // XXX hack to get auto-repeating timers; restart before doing  // expensive work so that time between ticks is more even  Stop();  Start();#ifdef NOISY_BLINK  PRTime now = PR_Now();  char buf[50];  PRTime delta;  LL_SUB(delta, now, gLastTick);  gLastTick = now;  PR_snprintf(buf, sizeof(buf), "%lldusec", delta);  printf("%s\n", buf);#endif  PRInt32 i, n = mFrames.Count();  for (i = 0; i < n; i++) {    FrameData* frameData = (FrameData*) mFrames.ElementAt(i);    // Determine damaged area and tell view manager to redraw it    nsPoint offset;    nsRect bounds;    frameData->mFrame->GetRect(bounds);    nsIView* view;    frameData->mFrame->GetOffsetFromView(frameData->mPresContext, offset, &view);    nsIViewManager* vm;    view->GetViewManager(vm);    bounds.x = offset.x;    bounds.y = offset.y;    vm->UpdateView(view, bounds, 0);    NS_RELEASE(vm);  }}