зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1665618. Fallback to allowing printing in color on failure to get printer capabilities. r=bobowen
Differential Revision: https://phabricator.services.mozilla.com/D90546
This commit is contained in:
Родитель
96ac4b6334
Коммит
f3000d3646
|
@ -28,7 +28,10 @@ namespace mozilla {
|
|||
struct PrintSettingsInitializer {
|
||||
nsString mPrinter;
|
||||
PaperInfo mPaperInfo;
|
||||
bool mPrintInColor = false;
|
||||
// If we fail to obtain printer capabilities, being given the option to print
|
||||
// in color to your monochrome printer is a lot less annoying than not being
|
||||
// given the option to print in color to your color printer.
|
||||
bool mPrintInColor = true;
|
||||
int mResolution = 0;
|
||||
#ifdef XP_WIN
|
||||
CopyableTArray<uint8_t> mDevmodeWStorage;
|
||||
|
|
|
@ -101,7 +101,6 @@ PrintSettingsInitializer nsPrinterCUPS::DefaultSettings() const {
|
|||
CUPS_MEDIA_FLAGS_DEFAULT, &media);
|
||||
|
||||
if (!hasDefaultMedia) {
|
||||
Nothing();
|
||||
return PrintSettingsInitializer{
|
||||
std::move(printerName),
|
||||
PaperInfo(),
|
||||
|
@ -184,10 +183,11 @@ bool nsPrinterCUPS::SupportsColor() const {
|
|||
// results for CUPS_PRINT_COLOR_MODE.
|
||||
// See https://bugzilla.mozilla.org/show_bug.cgi?id=1660658#c15
|
||||
if (!IsCUPSVersionAtLeast(2, 2, 0)) {
|
||||
return true;
|
||||
return true; // See comment for PrintSettingsInitializer.mPrintInColor
|
||||
}
|
||||
return Supports(CUPS_PRINT_COLOR_MODE, CUPS_PRINT_COLOR_MODE_COLOR) ||
|
||||
Supports(CUPS_PRINT_COLOR_MODE, CUPS_PRINT_COLOR_MODE_AUTO);
|
||||
return Supports(CUPS_PRINT_COLOR_MODE, CUPS_PRINT_COLOR_MODE_AUTO) ||
|
||||
Supports(CUPS_PRINT_COLOR_MODE, CUPS_PRINT_COLOR_MODE_COLOR) ||
|
||||
!Supports(CUPS_PRINT_COLOR_MODE, CUPS_PRINT_COLOR_MODE_MONOCHROME);
|
||||
}
|
||||
|
||||
bool nsPrinterCUPS::SupportsCollation() const {
|
||||
|
|
|
@ -71,7 +71,7 @@ PrintSettingsInitializer nsPrinterWin::DefaultSettings() const {
|
|||
SizeDouble paperSize{8.5 * 72.0, 11.0 * 72.0};
|
||||
gfx::MarginDouble margin;
|
||||
int resolution = 0;
|
||||
bool color = false;
|
||||
bool color = true;
|
||||
|
||||
nsTArray<uint8_t> devmodeWStorage;
|
||||
bool success = WithDefaultDevMode(
|
||||
|
@ -105,8 +105,10 @@ PrintSettingsInitializer nsPrinterWin::DefaultSettings() const {
|
|||
|
||||
// Using Y to match existing code for print scaling calculations.
|
||||
resolution = GetDeviceCaps(printerDc, LOGPIXELSY);
|
||||
color =
|
||||
(devmode->dmFields & DM_COLOR) && devmode->dmColor == DMCOLOR_COLOR;
|
||||
if (devmode->dmFields & DM_COLOR) {
|
||||
// See comment for PrintSettingsInitializer.mPrintInColor
|
||||
color = devmode->dmColor != DMCOLOR_MONOCHROME;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче