void View::idleView() { assert(_currentModule); _lastIdleTime = getTime(); for (Feature *node = _rootNode; node; node = node->_next) { if (node->_moveProc) (_currentModule->*(node->_moveProc))(node); } // TODO: find a way this works for all clients //if (/* TODO: _sortView */ true && !_inDialog) { // sortView(); //} sortView(); for (Feature *node = _rootNode; node; node = node->_next) { if (node->_dirty) { // TODO: clipping _needsUpdate = true; } if (node->_drawProc) (_currentModule->*(node->_drawProc))(node); node->_dirty = 0; } if (_needsUpdate) { finishDraw(); _vm->_system->updateScreen(); _needsUpdate = false; if (_backgroundId != 0xffff) _gfx->copyAnimImageToScreen(_backgroundId); } }
void SystemBox::drawShape(QPainter &painter) { QtCanvasRectangle::drawShape(painter); finishDraw(painter, isActive()); }