diff --git a/src/add-ons/print/drivers/shared/libprint/GraphicsDriver.cpp b/src/add-ons/print/drivers/shared/libprint/GraphicsDriver.cpp index 2b7b1c83c8..e28d91b7d5 100644 --- a/src/add-ons/print/drivers/shared/libprint/GraphicsDriver.cpp +++ b/src/add-ons/print/drivers/shared/libprint/GraphicsDriver.cpp @@ -461,11 +461,15 @@ bool GraphicsDriver::printDocument(SpoolData *spool_data) copies = fRealJobData->getCopies(); } + // printing of even/odd numbered pages only is valid in simplex mode + bool simplex = fRealJobData->getPrintStyle() == JobData::kSimplex; + if (spool_data->startEnum()) { do { DBGMSG(("page index = %d\n", page_index)); - if (fRealJobData->getPageSelection() == JobData::kEvenNumberedPages) { + if (simplex && + fRealJobData->getPageSelection() == JobData::kEvenNumberedPages) { // skip odd numbered page more = skipPages(spool_data); } @@ -478,7 +482,8 @@ bool GraphicsDriver::printDocument(SpoolData *spool_data) PageDataList pages; more = collectPages(spool_data, &pages); - if (more && fRealJobData->getPageSelection() == JobData::kOddNumberedPages) { + if (more && simplex && + fRealJobData->getPageSelection() == JobData::kOddNumberedPages) { // skip even numbered page more = skipPages(spool_data); } diff --git a/src/add-ons/print/drivers/shared/libprint/JobData.cpp b/src/add-ons/print/drivers/shared/libprint/JobData.cpp index d08aea4939..204f7fdf78 100644 --- a/src/add-ons/print/drivers/shared/libprint/JobData.cpp +++ b/src/add-ons/print/drivers/shared/libprint/JobData.cpp @@ -364,9 +364,9 @@ void JobData::save(BMessage *msg) msg->AddInt32(kJDPageOrder, fPageOrder); if (msg->HasBool(kJDColor)) - msg->ReplaceBool(kJDColor, fColor); + msg->ReplaceBool(kJDColor, fColor == kColor); else - msg->AddBool(kJDColor, fColor); + msg->AddBool(kJDColor, fColor == kColor); if (msg->HasInt32(kJDDitherType)) msg->ReplaceInt32(kJDDitherType, fDitherType);