Skip to content

Commit 1f7a09b

Browse files
Craig MautnerAndroid (Google) Code Review
authored andcommitted
Merge "Only inform DisplayManager of visible content." into jb-mr1-dev
2 parents ba30ac6 + 65d11b3 commit 1f7a09b

File tree

2 files changed

+88
-55
lines changed

2 files changed

+88
-55
lines changed

services/java/com/android/server/display/DisplayManagerService.java

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ public boolean waitForDefaultDisplay() {
209209
public void setWindowManager(WindowManagerFuncs windowManagerFuncs) {
210210
synchronized (mSyncRoot) {
211211
mWindowManagerFuncs = windowManagerFuncs;
212-
scheduleTraversalLocked();
212+
scheduleTraversalLocked(false);
213213
}
214214
}
215215

@@ -220,7 +220,7 @@ public void setWindowManager(WindowManagerFuncs windowManagerFuncs) {
220220
public void setInputManager(InputManagerFuncs inputManagerFuncs) {
221221
synchronized (mSyncRoot) {
222222
mInputManagerFuncs = inputManagerFuncs;
223-
scheduleTraversalLocked();
223+
scheduleTraversalLocked(false);
224224
}
225225
}
226226

@@ -264,7 +264,7 @@ public void setDisplayInfoOverrideFromWindowManager(
264264
display.setDisplayInfoOverrideFromWindowManagerLocked(info);
265265
if (!mTempDisplayInfo.equals(display.getDisplayInfoLocked())) {
266266
sendDisplayEventLocked(displayId, DisplayManagerGlobal.EVENT_DISPLAY_CHANGED);
267-
scheduleTraversalLocked();
267+
scheduleTraversalLocked(false);
268268
}
269269
}
270270
}
@@ -527,7 +527,7 @@ private void handleDisplayDeviceAdded(DisplayDevice device) {
527527

528528
mDisplayDevices.add(device);
529529
addLogicalDisplayLocked(device);
530-
scheduleTraversalLocked();
530+
scheduleTraversalLocked(false);
531531
}
532532
}
533533

@@ -543,7 +543,7 @@ private void handleDisplayDeviceChanged(DisplayDevice device) {
543543

544544
device.applyPendingDisplayDeviceInfoChangesLocked();
545545
if (updateLogicalDisplaysLocked()) {
546-
scheduleTraversalLocked();
546+
scheduleTraversalLocked(false);
547547
}
548548
}
549549
}
@@ -560,7 +560,7 @@ private void handleDisplayDeviceRemoved(DisplayDevice device) {
560560

561561
mRemovedDisplayDevices.add(device);
562562
updateLogicalDisplaysLocked();
563-
scheduleTraversalLocked();
563+
scheduleTraversalLocked(false);
564564
}
565565
}
566566

@@ -668,13 +668,15 @@ private void performTraversalInTransactionLocked() {
668668
*
669669
* @param displayId The logical display id to update.
670670
* @param hasContent True if the logical display has content.
671+
* @param inTraversal True if called from WindowManagerService during a window traversal prior
672+
* to call to performTraversalInTransactionFromWindowManager.
671673
*/
672-
public void setDisplayHasContent(int displayId, boolean hasContent) {
674+
public void setDisplayHasContent(int displayId, boolean hasContent, boolean inTraversal) {
673675
synchronized (mSyncRoot) {
674676
LogicalDisplay display = mLogicalDisplays.get(displayId);
675677
if (display != null && display.hasContentLocked() != hasContent) {
676678
display.setHasContentLocked(hasContent);
677-
scheduleTraversalLocked();
679+
scheduleTraversalLocked(inTraversal);
678680
}
679681
}
680682
}
@@ -741,10 +743,12 @@ private void sendDisplayEventLocked(int displayId, int event) {
741743

742744
// Requests that performTraversalsInTransactionFromWindowManager be called at a
743745
// later time to apply changes to surfaces and displays.
744-
private void scheduleTraversalLocked() {
746+
private void scheduleTraversalLocked(boolean inTraversal) {
745747
if (!mPendingTraversal && mWindowManagerFuncs != null) {
746748
mPendingTraversal = true;
747-
mHandler.sendEmptyMessage(MSG_REQUEST_TRAVERSAL);
749+
if (!inTraversal) {
750+
mHandler.sendEmptyMessage(MSG_REQUEST_TRAVERSAL);
751+
}
748752
}
749753
}
750754

@@ -911,7 +915,7 @@ public void onDisplayDeviceEvent(DisplayDevice device, int event) {
911915
@Override
912916
public void onTraversalRequested() {
913917
synchronized (mSyncRoot) {
914-
scheduleTraversalLocked();
918+
scheduleTraversalLocked(false);
915919
}
916920
}
917921
}

0 commit comments

Comments
 (0)