Chromium Code Reviews| Index: printing/printing_context_win.cc |
| diff --git a/printing/printing_context_win.cc b/printing/printing_context_win.cc |
| index ef45060ae402db2c39f7549c62cc026efd35b637..13febf4527386570636b16b69eabca1ce996ebd6 100644 |
| --- a/printing/printing_context_win.cc |
| +++ b/printing/printing_context_win.cc |
| @@ -312,14 +312,20 @@ PrintingContext::Result PrintingContextWin::UpdatePrinterSettings( |
| bool landscape; |
| bool print_to_pdf; |
| int copies; |
| - int duplex_mode; |
| + DictionaryValue* duplex_info; |
| + int printer_default_duplex_value; |
| + int user_selected_duplex_value; |
| string16 device_name; |
| if (!job_settings.GetBoolean(kSettingLandscape, &landscape) || |
| !job_settings.GetBoolean(kSettingCollate, &collate) || |
| !job_settings.GetBoolean(kSettingColor, &color) || |
| !job_settings.GetBoolean(kSettingPrintToPDF, &print_to_pdf) || |
| - !job_settings.GetInteger(kSettingDuplexMode, &duplex_mode) || |
| + !job_settings.GetDictionary(kSettingDuplexModeInfo, &duplex_info) || |
| + !duplex_info->GetInteger(kPrinterDefaultDuplexValue, |
| + &printer_default_duplex_value) || |
| + !duplex_info->GetInteger(kUserSelectedDuplexValue, |
| + &user_selected_duplex_value) || |
| !job_settings.GetInteger(kSettingCopies, &copies) || |
| !job_settings.GetString(kSettingDeviceName, &device_name)) { |
| return OnError(); |
| @@ -369,16 +375,21 @@ PrintingContext::Result PrintingContextWin::UpdatePrinterSettings( |
| dev_mode->dmCopies = std::max(copies, 1); |
| if (dev_mode->dmCopies > 1) // do not change collate unless multiple copies |
| dev_mode->dmCollate = collate ? DMCOLLATE_TRUE : DMCOLLATE_FALSE; |
| - switch (duplex_mode) { |
| - case LONG_EDGE: |
| - dev_mode->dmDuplex = DMDUP_VERTICAL; |
| - break; |
| - case SHORT_EDGE: |
| - dev_mode->dmDuplex = DMDUP_HORIZONTAL; |
| - break; |
| - default: // simplex |
| - dev_mode->dmDuplex = DMDUP_SIMPLEX; |
| - break; |
| + if (printer_default_duplex_value == printing::UNKNOWN) { |
| + dev_mode->dmDuplex = user_selected_duplex_value ? DMDUP_HORIZONTAL : |
|
vandebo (ex-Chrome)
2011/09/02 18:12:50
This assumes that SIMPLEX is "false." Instead, yo
kmadhusu
2011/09/03 00:34:00
As we discussed, I reverted the printing context c
|
| + DMDUP_SIMPLEX; |
| + } else { |
| + switch (user_selected_duplex_value) { |
| + case LONG_EDGE: |
| + dev_mode->dmDuplex = DMDUP_VERTICAL; |
| + break; |
| + case SHORT_EDGE: |
| + dev_mode->dmDuplex = DMDUP_HORIZONTAL; |
| + break; |
| + default: // simplex |
| + dev_mode->dmDuplex = DMDUP_SIMPLEX; |
| + break; |
| + } |
| } |
| dev_mode->dmOrientation = landscape ? DMORIENT_LANDSCAPE : DMORIENT_PORTRAIT; |