Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(292)

Side by Side Diff: Source/core/rendering/RenderObject.cpp

Issue 240253007: Don't always repaint on zIndex change (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed.
7 * Copyright (C) 2009 Google Inc. All rights reserved. 7 * Copyright (C) 2009 Google Inc. All rights reserved.
8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 1885 matching lines...) Expand 10 before | Expand all | Expand 10 after
1896 // then we actually need SimplifiedLayoutAndPositionedMovement. 1896 // then we actually need SimplifiedLayoutAndPositionedMovement.
1897 if (!hasLayer()) 1897 if (!hasLayer())
1898 diff.setNeedsFullLayout(); // FIXME: Do this for now since Simpl ifiedLayout cannot handle updating floating objects lists. 1898 diff.setNeedsFullLayout(); // FIXME: Do this for now since Simpl ifiedLayout cannot handle updating floating objects lists.
1899 else 1899 else
1900 diff.setNeedsSimplifiedLayout(); 1900 diff.setNeedsSimplifiedLayout();
1901 } else { 1901 } else {
1902 diff.setNeedsRecompositeLayer(); 1902 diff.setNeedsRecompositeLayer();
1903 } 1903 }
1904 } 1904 }
1905 1905
1906 // If opacity or filters changed, and the layer does not paint into its own separate backing, then we need to repaint (also 1906 // If opacity or zIndex changed, and the layer does not paint into its own s eparate backing, then we need to repaint (also
1907 // ignoring text nodes) 1907 // ignoring text nodes)
1908 if (contextSensitiveProperties & ContextSensitivePropertyOpacity && !diff.ne edsLayout()) { 1908 if ((contextSensitiveProperties & (ContextSensitivePropertyOpacity | Context SensitivePropertyZIndex)) && !diff.needsLayout()) {
1909 if (!isText() && (!hasLayer() || !toRenderLayerModelObject(this)->layer( )->hasDirectReasonsForCompositing())) 1909 if (!isText() && (!hasLayer() || !toRenderLayerModelObject(this)->layer( )->hasDirectReasonsForCompositing()))
1910 diff.setNeedsRepaintLayer(); 1910 diff.setNeedsRepaintLayer();
1911 else 1911 else
1912 diff.setNeedsRecompositeLayer(); 1912 diff.setNeedsRecompositeLayer();
1913 } 1913 }
1914 1914
1915 // If filter changed, and the layer does not paint into its own separate bac king or it paints with filters, then we need to repaint.
1915 if ((contextSensitiveProperties & ContextSensitivePropertyFilter) && hasLaye r() && !diff.needsLayout()) { 1916 if ((contextSensitiveProperties & ContextSensitivePropertyFilter) && hasLaye r() && !diff.needsLayout()) {
1916 RenderLayer* layer = toRenderLayerModelObject(this)->layer(); 1917 RenderLayer* layer = toRenderLayerModelObject(this)->layer();
1917 if (!layer->hasDirectReasonsForCompositing() || layer->paintsWithFilters ()) 1918 if (!layer->hasDirectReasonsForCompositing() || layer->paintsWithFilters ())
1918 diff.setNeedsRepaintLayer(); 1919 diff.setNeedsRepaintLayer();
1919 else 1920 else
1920 diff.setNeedsRecompositeLayer(); 1921 diff.setNeedsRecompositeLayer();
1921 } 1922 }
1922 1923
1923 if ((contextSensitiveProperties & ContextSensitivePropertyTextOrColor) && !d iff.needsRepaint() && !diff.needsLayout() 1924 if ((contextSensitiveProperties & ContextSensitivePropertyTextOrColor) && !d iff.needsRepaint() && !diff.needsLayout()
1924 && hasImmediateNonWhitespaceTextChildOrPropertiesDependentOnColor()) 1925 && hasImmediateNonWhitespaceTextChildOrPropertiesDependentOnColor())
(...skipping 1493 matching lines...) Expand 10 before | Expand all | Expand 10 after
3418 { 3419 {
3419 if (object1) { 3420 if (object1) {
3420 const WebCore::RenderObject* root = object1; 3421 const WebCore::RenderObject* root = object1;
3421 while (root->parent()) 3422 while (root->parent())
3422 root = root->parent(); 3423 root = root->parent();
3423 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); 3424 root->showRenderTreeAndMark(object1, "*", object2, "-", 0);
3424 } 3425 }
3425 } 3426 }
3426 3427
3427 #endif 3428 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698