summaryrefslogtreecommitdiffstats
path: root/services/java/com/android/server/InputMethodManagerService.java
diff options
context:
space:
mode:
authorChet Haase <chet@google.com>2013-03-13 06:46:50 -0700
committerChet Haase <chet@google.com>2013-03-13 18:23:44 -0700
commit107a48236ad73cf4627069edbeaa45a189e0d8ac (patch)
treeb8104190bcad3bb0d897327e92f42c103ef1a73f /services/java/com/android/server/InputMethodManagerService.java
parentde965891130bc50bd02eb6f7bac2ea177a733c2c (diff)
downloadframeworks_base-107a48236ad73cf4627069edbeaa45a189e0d8ac.zip
frameworks_base-107a48236ad73cf4627069edbeaa45a189e0d8ac.tar.gz
frameworks_base-107a48236ad73cf4627069edbeaa45a189e0d8ac.tar.bz2
Fix erroneous requestLayout-during-layout issues
In general, calling requestLayout() during layout is a Bad Idea. However, ListView does this during the normal course of its layout, as it removes and adds views during layout. However, it handles this properly, ensuring that the views in its hierarchy are all measured and laid out properly by the time its layout process is done. A previous fix to the request-during-layout issue attempted to distinguish the correct from incorrect behavior by checking whether views had been properly laid out since the requestLayout() call, and making sure the views were visible in the hierarchy (parented, attached, and !GONE), since otherwise the views would not be laid out, the flags wouldn't be cleared, and requests are superfluous anyway. However, this logic only checked whether the requesting views were GONE, whereas the check should include the entire parent hierarchy of the views (since a view with a GONE parent is still not visible to the user). This fix adds that additional check and cleans up other parts of the previous code, such as not bothering to post() requests that occur during the second layout pass unless those requests are also valid (coming from visible views). Issue #8370042 Path seems to be in an infinite layout loop Change-Id: I7aaf701229adfeee349a9a7c9ec14585735ba9f6
Diffstat (limited to 'services/java/com/android/server/InputMethodManagerService.java')
0 files changed, 0 insertions, 0 deletions