void MCRedrawDirtyScreen(void) { MCStacknode *t_stacks; t_stacks = MCstacks -> topnode(); if (t_stacks == nil) return; // MW-2011-10-17: [[ Bug 9810 ]] Make sure we don't miss any stacks // (was previously looping back to t_stacks, not prev(t_stacks). MCStacknode *tptr = t_stacks->prev(); do { MCStack *sptr = tptr->getstack(); sptr -> dirtyall(); tptr = tptr->prev(); } while (tptr != t_stacks -> prev()); }
void MCRedrawDoUpdateScreen(void) { if (MClockscreen != 0) return; if (!s_screen_is_dirty) return; if (s_screen_updates_disabled) return; MCStacknode *t_stacks; t_stacks = MCstacks -> topnode(); if (t_stacks == nil) return; MCStacknode *tptr = t_stacks->prev(); do { MCStack *sptr = tptr->getstack(); if (sptr->getstate(CS_NEED_RESIZE)) { sptr->setgeom(); sptr->openrect(sptr->getrect(), WM_LAST, NULL, WP_DEFAULT, OP_NONE); MCRedrawUpdateScreen(); return; } sptr -> applyupdates(); tptr = tptr->prev(); } while (tptr != t_stacks->prev()); s_screen_is_dirty = false; MCredrawupdatescreenneeded = MClockscreen == 0 && s_screen_is_dirty && !s_screen_updates_disabled; }