зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1755974 - Fix Linux system print dialog to take the pages-per-sheet from print preview. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D164621
This commit is contained in:
Родитель
2825275ca6
Коммит
1d98de863a
|
@ -376,6 +376,8 @@ nsresult nsPrintDialogWidgetGTK::ImportSettings(nsIPrintSettings* aNSSettings) {
|
||||||
GtkPrintSettings* settings = aNSSettingsGTK->GetGtkPrintSettings();
|
GtkPrintSettings* settings = aNSSettingsGTK->GetGtkPrintSettings();
|
||||||
GtkPageSetup* setup = aNSSettingsGTK->GetGtkPageSetup();
|
GtkPageSetup* setup = aNSSettingsGTK->GetGtkPageSetup();
|
||||||
|
|
||||||
|
// Set our custom fields:
|
||||||
|
|
||||||
bool geckoBool;
|
bool geckoBool;
|
||||||
aNSSettings->GetShrinkToFit(&geckoBool);
|
aNSSettings->GetShrinkToFit(&geckoBool);
|
||||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(shrink_to_fit_toggle),
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(shrink_to_fit_toggle),
|
||||||
|
@ -387,6 +389,11 @@ nsresult nsPrintDialogWidgetGTK::ImportSettings(nsIPrintSettings* aNSSettings) {
|
||||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(print_bg_images_toggle),
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(print_bg_images_toggle),
|
||||||
aNSSettings->GetPrintBGImages());
|
aNSSettings->GetPrintBGImages());
|
||||||
|
|
||||||
|
// Temporarily set the pages-per-sheet on the GtkPrintSettings:
|
||||||
|
int32_t pagesPerSide;
|
||||||
|
aNSSettings->GetNumPagesPerSheet(&pagesPerSide);
|
||||||
|
gtk_print_settings_set_number_up(settings, pagesPerSide);
|
||||||
|
|
||||||
gtk_print_unix_dialog_set_settings(GTK_PRINT_UNIX_DIALOG(dialog), settings);
|
gtk_print_unix_dialog_set_settings(GTK_PRINT_UNIX_DIALOG(dialog), settings);
|
||||||
gtk_print_unix_dialog_set_page_setup(GTK_PRINT_UNIX_DIALOG(dialog), setup);
|
gtk_print_unix_dialog_set_page_setup(GTK_PRINT_UNIX_DIALOG(dialog), setup);
|
||||||
|
|
||||||
|
@ -423,6 +430,13 @@ nsresult nsPrintDialogWidgetGTK::ExportSettings(nsIPrintSettings* aNSSettings) {
|
||||||
aNSSettings->SetPrintBGImages(gtk_toggle_button_get_active(
|
aNSSettings->SetPrintBGImages(gtk_toggle_button_get_active(
|
||||||
GTK_TOGGLE_BUTTON(print_bg_images_toggle)));
|
GTK_TOGGLE_BUTTON(print_bg_images_toggle)));
|
||||||
|
|
||||||
|
// Move any pages-per-sheet value from the GtkPrintSettings to our
|
||||||
|
// nsIPrintSettings. (We handle pages-per-sheet internally and don't want
|
||||||
|
// the native Linux printing code to doubly apply that value!)
|
||||||
|
int32_t pagesPerSide = gtk_print_settings_get_number_up(settings);
|
||||||
|
gtk_print_settings_set_number_up(settings, 1);
|
||||||
|
aNSSettings->SetNumPagesPerSheet(pagesPerSide);
|
||||||
|
|
||||||
// Try to save native settings in the session object
|
// Try to save native settings in the session object
|
||||||
nsCOMPtr<nsPrintSettingsGTK> aNSSettingsGTK(do_QueryInterface(aNSSettings));
|
nsCOMPtr<nsPrintSettingsGTK> aNSSettingsGTK(do_QueryInterface(aNSSettings));
|
||||||
if (aNSSettingsGTK) {
|
if (aNSSettingsGTK) {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче