void RenderFlowThread::repaintRectangleInRegions(const LayoutRect& repaintRect, bool immediate) { if (!shouldRepaint(repaintRect) || !hasValidRegionInfo()) return; for (RenderRegionList::iterator iter = m_regionList.begin(); iter != m_regionList.end(); ++iter) { RenderRegion* region = *iter; if (!region->isValid()) continue; // We only have to issue a repaint in this region if the region rect intersects the repaint rect. LayoutRect flippedRegionRect(region->regionRect()); LayoutRect flippedRegionOverflowRect(region->regionOverflowRect()); flipForWritingMode(flippedRegionRect); // Put the region rects into physical coordinates. flipForWritingMode(flippedRegionOverflowRect); LayoutRect clippedRect(repaintRect); clippedRect.intersect(flippedRegionOverflowRect); if (clippedRect.isEmpty()) continue; // Put the region rect into the region's physical coordinate space. clippedRect.setLocation(region->contentBoxRect().location() + (clippedRect.location() - flippedRegionRect.location())); // Now switch to the region's writing mode coordinate space and let it repaint itself. region->flipForWritingMode(clippedRect); LayoutStateDisabler layoutStateDisabler(view()); // We can't use layout state to repaint, since the region is somewhere else. // Can't use currentFlowThread as it possible to have imbricated flow threads and the wrong one could be used, // so, we let each region figure out the proper enclosing flow thread CurrentRenderFlowThreadDisabler disabler(view()); region->repaintRectangle(clippedRect, immediate); } }
void RenderView::repaintViewRectangle(const IntRect& ur, bool immediate) { #if PLATFORM(WKC) CRASH_IF_STACK_OVERFLOW(WKC_STACK_MARGIN_DEFAULT); #endif if (!shouldRepaint(ur)) return; // We always just invalidate the root view, since we could be an iframe that is clipped out // or even invisible. Element* elt = document()->ownerElement(); if (!elt) m_frameView->repaintContentRectangle(ur, immediate); else if (RenderBox* obj = elt->renderBox()) { IntRect vr = viewRect(); IntRect r = intersection(ur, vr); // Subtract out the contentsX and contentsY offsets to get our coords within the viewing // rectangle. r.move(-vr.x(), -vr.y()); // FIXME: Hardcoded offsets here are not good. r.move(obj->borderLeft() + obj->paddingLeft(), obj->borderTop() + obj->paddingTop()); obj->repaintRectangle(r, immediate); } }
void RenderView::repaintRectangleInViewAndCompositedLayers(const LayoutRect& ur, bool immediate) { if (!shouldRepaint(ur)) return; repaintViewRectangle(ur, immediate); #if USE(ACCELERATED_COMPOSITING) if (compositor()->inCompositingMode()) compositor()->repaintCompositedLayersAbsoluteRect(pixelSnappedIntRect(ur)); #endif }
void RenderView::repaintRectangleInViewAndCompositedLayers(const LayoutRect& ur, bool immediate) { if (!shouldRepaint(ur)) return; repaintViewRectangle(ur, immediate); #if USE(ACCELERATED_COMPOSITING) RenderLayerCompositor& compositor = this->compositor(); if (compositor.inCompositingMode()) { IntRect repaintRect = pixelSnappedIntRect(ur); compositor.repaintCompositedLayers(&repaintRect); } #endif }
void RenderView::repaintRectangleInViewAndCompositedLayers(const LayoutRect& ur) { if (!shouldRepaint(ur)) return; repaintViewRectangle(ur); // FIXME: We don't actually know how to hit these ASSERTS. DisableCompositingQueryAsserts disabler; if (compositor()->inCompositingMode()) { IntRect repaintRect = pixelSnappedIntRect(ur); compositor()->repaintCompositedLayers(&repaintRect); } }
void RenderFlowThread::repaintRectangleInRegions(const LayoutRect& repaintRect, bool immediate) const { if (!shouldRepaint(repaintRect) || !hasValidRegionInfo()) return; LayoutStateDisabler layoutStateDisabler(view()); // We can't use layout state to repaint, since the regions are somewhere else. // We can't use currentFlowThread as it is possible to have interleaved flow threads and the wrong one could be used. // Let each region figure out the proper enclosing flow thread. CurrentRenderFlowThreadDisabler disabler(view()); for (RenderRegionList::const_iterator iter = m_regionList.begin(); iter != m_regionList.end(); ++iter) { RenderRegion* region = *iter; region->repaintFlowThreadContent(repaintRect, immediate); } }
void RenderView::repaintRectangleInViewAndCompositedLayers(const IntRect& ur, bool immediate) { if (!shouldRepaint(ur)) return; repaintViewRectangle(ur, immediate); #if USE(ACCELERATED_COMPOSITING) // If we're a frame, repaintViewRectangle will have repainted via a RenderObject in the // parent document. if (document()->ownerElement()) return; if (compositor()->inCompositingMode()) compositor()->repaintCompositedLayersAbsoluteRect(ur); #endif }
void RenderFlowThread::repaintRectangleInRegions(const LayoutRect& repaintRect) const { if (!shouldRepaint(repaintRect) || !hasValidRegionInfo()) return; ForceHorriblySlowRectMapping slowRectMapping(*this); // We can't use layout state to repaint, since the regions are somewhere else. // We can't use currentFlowThread as it is possible to have interleaved flow threads and the wrong one could be used. // Let each columnSet figure out the proper enclosing flow thread. CurrentRenderFlowThreadDisabler disabler(view()); for (RenderMultiColumnSetList::const_iterator iter = m_multiColumnSetList.begin(); iter != m_multiColumnSetList.end(); ++iter) { RenderMultiColumnSet* columnSet = *iter; columnSet->repaintFlowThreadContent(repaintRect); } }
WallpaperQml::WallpaperQml(QObject *parent, const QVariantList &args) : Plasma::Wallpaper(parent, args) , m_scene(new QGraphicsScene(this)) , m_item(0) , m_package(0) { m_engine = new QDeclarativeEngine(this); KDeclarative kdeclarative; kdeclarative.setDeclarativeEngine(m_engine); kdeclarative.initialize(); kdeclarative.setupBindings(); m_component = new QDeclarativeComponent(m_engine); connect(m_component, SIGNAL(statusChanged(QDeclarativeComponent::Status)), SLOT(componentStatusChanged(QDeclarativeComponent::Status))); connect(this, SIGNAL(renderHintsChanged()), SLOT(resizeWallpaper())); connect(m_scene, SIGNAL(changed(QList<QRectF>)), SLOT(shouldRepaint(QList<QRectF>))); }
void RenderView::repaintViewRectangle(const LayoutRect& ur, bool immediate) { if (!shouldRepaint(ur)) return; // We always just invalidate the root view, since we could be an iframe that is clipped out // or even invisible. Element* elt = document()->ownerElement(); if (!elt) m_frameView->repaintContentRectangle(pixelSnappedIntRect(ur), immediate); else if (RenderBox* obj = elt->renderBox()) { LayoutRect vr = viewRect(); LayoutRect r = intersection(ur, vr); // Subtract out the contentsX and contentsY offsets to get our coords within the viewing // rectangle. r.moveBy(-vr.location()); // FIXME: Hardcoded offsets here are not good. r.moveBy(obj->contentBoxRect().location()); obj->repaintRectangle(r, immediate); } }