void twidget::populate_dirty_list(twindow& caller, std::vector<twidget*>& call_stack) { assert(call_stack.empty() || call_stack.back() != this); if(visible_ != VISIBLE) { return; } if(get_drawing_action() == NOT_DRAWN) { return; } call_stack.push_back(this); if(dirty_) { caller.add_to_dirty_list(call_stack); } else { // virtual function which only does something for container items. child_populate_dirty_list(caller, call_stack); } }
void widget::populate_dirty_list(window& caller, std::vector<widget*>& call_stack) { assert(call_stack.empty() || call_stack.back() != this); if(visible_ != visibility::visible) { return; } if(get_drawing_action() == redraw_action::none) { return; } call_stack.push_back(this); if(is_dirty_) { caller.add_to_dirty_list(call_stack); } else { // virtual function which only does something for container items. child_populate_dirty_list(caller, call_stack); } }