mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-18 22:54:00 +00:00
69 lines
2.4 KiB
Diff
69 lines
2.4 KiB
Diff
|
From b824ad5ee90704db9942857145f04b8542924b12 Mon Sep 17 00:00:00 2001
|
||
|
From: "noamsml@google.com"
|
||
|
<noamsml@google.com@0039d316-1c4b-4281-b951-d872f2087c98>
|
||
|
Date: Thu, 28 Feb 2013 19:00:49 +0000
|
||
|
Subject: [PATCH] Fix crash in chrome when trying to print with CUPS down
|
||
|
|
||
|
This is a workaround for GTK bug https://bugzilla.gnome.org/show_bug.cgi?id=686838.
|
||
|
|
||
|
Removed listing of printers when setting up default settings in native print dialog,
|
||
|
as it is not necessary (behavior verified to be unchanged). Added check to ensure
|
||
|
print preview dialog does not try to instantiate a printer list when selecting a
|
||
|
cloud printer, as this is also unnecessary (again, no behavior change).
|
||
|
|
||
|
BUG=160574
|
||
|
|
||
|
|
||
|
Review URL: https://chromiumcodereview.appspot.com/12374003
|
||
|
|
||
|
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@185284 0039d316-1c4b-4281-b951-d872f2087c98
|
||
|
---
|
||
|
chrome/browser/printing/print_dialog_gtk.cc | 18 +++++-------------
|
||
|
1 file changed, 5 insertions(+), 13 deletions(-)
|
||
|
|
||
|
diff --git a/chrome/browser/printing/print_dialog_gtk.cc b/chrome/browser/printing/print_dialog_gtk.cc
|
||
|
index 70fe427..d8cb419 100644
|
||
|
--- a/chrome/browser/printing/print_dialog_gtk.cc
|
||
|
+++ b/chrome/browser/printing/print_dialog_gtk.cc
|
||
|
@@ -130,21 +130,11 @@ PrintDialogGtk::~PrintDialogGtk() {
|
||
|
|
||
|
void PrintDialogGtk::UseDefaultSettings() {
|
||
|
DCHECK(!page_setup_);
|
||
|
+ DCHECK(!printer_);
|
||
|
|
||
|
// |gtk_settings_| is a new object.
|
||
|
gtk_settings_ = gtk_print_settings_new();
|
||
|
-
|
||
|
- scoped_ptr<GtkPrinterList> printer_list(new GtkPrinterList);
|
||
|
- printer_ = printer_list->default_printer();
|
||
|
- if (printer_) {
|
||
|
- g_object_ref(printer_);
|
||
|
- gtk_print_settings_set_printer(gtk_settings_,
|
||
|
- gtk_printer_get_name(printer_));
|
||
|
- page_setup_ = gtk_printer_get_default_page_size(printer_);
|
||
|
- }
|
||
|
-
|
||
|
- if (!page_setup_)
|
||
|
- page_setup_ = gtk_page_setup_new();
|
||
|
+ page_setup_ = gtk_page_setup_new();
|
||
|
|
||
|
// No page range to initialize for default settings.
|
||
|
PageRanges ranges_vector;
|
||
|
@@ -173,10 +163,12 @@ bool PrintDialogGtk::UpdateSettings(const base::DictionaryValue& job_settings,
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
+ bool is_cloud_print = job_settings.HasKey(printing::kSettingCloudPrintId);
|
||
|
+
|
||
|
if (!gtk_settings_)
|
||
|
gtk_settings_ = gtk_print_settings_new();
|
||
|
|
||
|
- if (!print_to_pdf) {
|
||
|
+ if (!print_to_pdf && !is_cloud_print) {
|
||
|
scoped_ptr<GtkPrinterList> printer_list(new GtkPrinterList);
|
||
|
printer_ = printer_list->GetPrinterWithName(device_name.c_str());
|
||
|
if (printer_) {
|
||
|
--
|
||
|
1.7.10
|
||
|
|