summaryrefslogtreecommitdiff
path: root/packages/PrintSpooler/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/PrintSpooler/src')
-rw-r--r--packages/PrintSpooler/src/com/android/printspooler/model/RemotePrintDocument.java10
1 files changed, 8 insertions, 2 deletions
diff --git a/packages/PrintSpooler/src/com/android/printspooler/model/RemotePrintDocument.java b/packages/PrintSpooler/src/com/android/printspooler/model/RemotePrintDocument.java
index 164454690d46..42c1997b41a3 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/model/RemotePrintDocument.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/model/RemotePrintDocument.java
@@ -218,8 +218,14 @@ public final class RemotePrintDocument {
throw new IllegalStateException("Cannot update in state:" + stateToString(mState));
}
- // We schedule a layout if the constraints changed.
- if (!mUpdateSpec.hasSameConstraints(attributes, preview)) {
+ /*
+ * We schedule a layout in two cases:
+ * - if the current command is canceling. In this case the mUpdateSpec will be marked as
+ * stale once the command is done, hence we have to start from scratch
+ * - if the constraints changed we have a different document, hence start a new layout
+ */
+ if (mCurrentCommand != null && mCurrentCommand.isCanceling()
+ || !mUpdateSpec.hasSameConstraints(attributes, preview)) {
willUpdate = true;
// If there is a current command that is running we ask for a