зеркало из https://github.com/mozilla/gecko-dev.git
Bug 303091 JS Exception when changing print scale
patch by b.jacques@planet.nl r=timeless sr=shaver a=cbeard
This commit is contained in:
Родитель
8028798e35
Коммит
80d53bd436
|
@ -1046,24 +1046,22 @@ nsPrintOptions::InitPrintSettingsFromPrinter(const PRUnichar *aPrinterName,
|
||||||
/** ---------------------------------------------------
|
/** ---------------------------------------------------
|
||||||
* Helper function - Returns either the name or sets the length to zero
|
* Helper function - Returns either the name or sets the length to zero
|
||||||
*/
|
*/
|
||||||
static void
|
static nsresult
|
||||||
GetAdjustedPrinterName(nsIPrintSettings* aPS, PRBool aUsePNP,
|
GetAdjustedPrinterName(nsIPrintSettings* aPS, PRBool aUsePNP,
|
||||||
nsAString& aPrinterName)
|
nsAString& aPrinterName)
|
||||||
{
|
{
|
||||||
if(!aPS) return;
|
NS_ENSURE_ARG_POINTER(aPS);
|
||||||
|
|
||||||
aPrinterName.Truncate();
|
aPrinterName.Truncate();
|
||||||
|
if (!aUsePNP)
|
||||||
|
return NS_OK;
|
||||||
|
|
||||||
// Get the Printer Name from the PrintSettings
|
// Get the Printer Name from the PrintSettings
|
||||||
// to use as a prefix for Pref Names
|
// to use as a prefix for Pref Names
|
||||||
PRUnichar* prtName = nsnull;
|
PRUnichar* prtName = nsnull;
|
||||||
if (aUsePNP && NS_SUCCEEDED(aPS->GetPrinterName(&prtName))) {
|
|
||||||
if (prtName && !*prtName) {
|
|
||||||
nsMemory::Free(prtName);
|
|
||||||
prtName = nsnull;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!prtName) return;
|
nsresult rv = aPS->GetPrinterName(&prtName);
|
||||||
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
aPrinterName = nsDependentString(prtName);
|
aPrinterName = nsDependentString(prtName);
|
||||||
|
|
||||||
|
@ -1082,6 +1080,7 @@ GetAdjustedPrinterName(nsIPrintSettings* aPS, PRBool aUsePNP,
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
|
@ -1155,11 +1154,14 @@ nsPrintOptions::SavePrintSettingsToPrefs(nsIPrintSettings *aPS,
|
||||||
|
|
||||||
// Get the Printer Name from the PrinterSettings
|
// Get the Printer Name from the PrinterSettings
|
||||||
// to use as a prefix for Pref Names
|
// to use as a prefix for Pref Names
|
||||||
GetAdjustedPrinterName(aPS, aUsePrinterNamePrefix, prtName);
|
nsresult rv = GetAdjustedPrinterName(aPS, aUsePrinterNamePrefix, prtName);
|
||||||
NS_ENSURE_FALSE(prtName.IsEmpty(), NS_ERROR_FAILURE);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
// Now write any printer specific prefs
|
// Now write any printer specific prefs
|
||||||
return WritePrefs(aPS, prtName, aFlags);
|
// XXX but when |prtName| is empty, how can we write printer specific prefs?
|
||||||
|
rv = WritePrefs(aPS, prtName, aFlags);
|
||||||
|
|
||||||
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче