From 34f88c3d62e3cc114623cdd938dfcc13221eb329 Mon Sep 17 00:00:00 2001
From: phasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Date: Tue, 26 Apr 2011 20:44:43 +0000
Subject: [PATCH] Setting print.always_print_silent to false is a bad thing,
 since it trumps gPrintSettings.printSilent, and will cause a print dialog
 regardless of Printer Prompt or Auto-Print checkboxes.  Let's clear it
 instead when toggling it off, and if we find it lingering as false from past
 code, let's clear it then too.

git-svn-id: svn://svn.open-ils.org/ILS/branches/rel_2_1@20328 dcc99617-32d9-48b4-a31d-7c20da2025e4
---
 Open-ILS/xul/staff_client/chrome/content/util/print.js     | 10 ++++++++++
 Open-ILS/xul/staff_client/server/admin/printer_settings.js |  5 ++++-
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/Open-ILS/xul/staff_client/chrome/content/util/print.js b/Open-ILS/xul/staff_client/chrome/content/util/print.js
index aa1608a5a4..4f9cbdd6da 100644
--- a/Open-ILS/xul/staff_client/chrome/content/util/print.js
+++ b/Open-ILS/xul/staff_client/chrome/content/util/print.js
@@ -22,6 +22,16 @@ util.print = function (context) {
     }
     this.oils_printer_external_cmd = has_key ? prefs.getCharPref(key) : '';
 
+    try {
+        if (prefs.prefHasUserValue('print.always_print_silent')) {
+            if (! prefs.getBoolPref('print.always_print_silent')) {
+                prefs.clearUserPref('print.always_print_silent');
+            }
+        }
+    } catch(E) {
+        dump('Error in print.js trying to clear print.always_print_silent\n');
+    }
+
     return this;
 };
 
diff --git a/Open-ILS/xul/staff_client/server/admin/printer_settings.js b/Open-ILS/xul/staff_client/server/admin/printer_settings.js
index 82f5de087d..8c3e389cbe 100644
--- a/Open-ILS/xul/staff_client/server/admin/printer_settings.js
+++ b/Open-ILS/xul/staff_client/server/admin/printer_settings.js
@@ -67,10 +67,13 @@ g.printer_settings = function() {
         print_silent_pref = g.prefs.getBoolPref('print.always_print_silent');
     }
     g.prefs.setBoolPref('print.always_print_silent', false);
+    g.prefs.clearUserPref('print.always_print_silent');
     var w = get_contentWindow(document.getElementById('sample'));
     g.print.NSPrint(w ? w : window, false, {});
     g.print.save_settings();
-    g.prefs.setBoolPref('print.always_print_silent', print_silent_pref);
+    if (print_silent_pref) {
+        g.prefs.setBoolPref('print.always_print_silent', true);
+    }
 }
 
 g.set_print_strategy = function(which) {
-- 
2.11.0