summaryrefslogtreecommitdiffstats
path: root/core/java/android
diff options
context:
space:
mode:
authorChet Haase <chet@google.com>2011-07-18 17:48:25 -0700
committerChet Haase <chet@google.com>2011-07-18 17:48:25 -0700
commit75755e23f30d7a1f8c7b0c76ff5b2bcc72d6844f (patch)
tree3a6da5df276e53b7f3f79aa5b7acb98a71162d7e /core/java/android
parent49840e255beed794c1240b230b4d824520933fa1 (diff)
downloadframeworks_base-75755e23f30d7a1f8c7b0c76ff5b2bcc72d6844f.zip
frameworks_base-75755e23f30d7a1f8c7b0c76ff5b2bcc72d6844f.tar.gz
frameworks_base-75755e23f30d7a1f8c7b0c76ff5b2bcc72d6844f.tar.bz2
Don't recreate view's display list when size hasn't changed
Minor optimization in setFrame(), to force recreation of a view's display list only when the actual size of the view has changed. Change-Id: Id07bd6943beec30de731ae8469ba881f5c0d9ac6
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/view/View.java16
1 files changed, 8 insertions, 8 deletions
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 4385c2f..dba6d31 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -10756,12 +10756,14 @@ public class View implements Drawable.Callback2, KeyEvent.Callback, Accessibilit
// Remember our drawn bit
int drawn = mPrivateFlags & DRAWN;
- // Invalidate our old position
- invalidate(true);
-
-
int oldWidth = mRight - mLeft;
int oldHeight = mBottom - mTop;
+ int newWidth = right - left;
+ int newHeight = bottom - top;
+ boolean sizeChanged = (newWidth != oldWidth) || (newHeight != oldHeight);
+
+ // Invalidate our old position
+ invalidate(sizeChanged);
mLeft = left;
mTop = top;
@@ -10770,10 +10772,8 @@ public class View implements Drawable.Callback2, KeyEvent.Callback, Accessibilit
mPrivateFlags |= HAS_BOUNDS;
- int newWidth = right - left;
- int newHeight = bottom - top;
- if (newWidth != oldWidth || newHeight != oldHeight) {
+ if (sizeChanged) {
if ((mPrivateFlags & PIVOT_EXPLICITLY_SET) == 0) {
// A change in dimension means an auto-centered pivot point changes, too
mMatrixDirty = true;
@@ -10788,7 +10788,7 @@ public class View implements Drawable.Callback2, KeyEvent.Callback, Accessibilit
// before this call to setFrame came in, thereby clearing
// the DRAWN bit.
mPrivateFlags |= DRAWN;
- invalidate(true);
+ invalidate(sizeChanged);
// parent display list may need to be recreated based on a change in the bounds
// of any child
invalidateParentCaches();