OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/libgtk2ui/print_dialog_gtk2.h" | 5 #include "chrome/browser/ui/libgtk2ui/print_dialog_gtk2.h" |
6 | 6 |
7 #include <gtk/gtkunixprint.h> | 7 #include <gtk/gtkunixprint.h> |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
235 | 235 |
236 void PrintDialogGtk2::ShowDialog( | 236 void PrintDialogGtk2::ShowDialog( |
237 gfx::NativeView parent_view, | 237 gfx::NativeView parent_view, |
238 bool has_selection, | 238 bool has_selection, |
239 const PrintingContextLinux::PrintSettingsCallback& callback) { | 239 const PrintingContextLinux::PrintSettingsCallback& callback) { |
240 callback_ = callback; | 240 callback_ = callback; |
241 | 241 |
242 // TODO(mukai): take care of parent as select_file_dialog_impl_gtk2. | 242 // TODO(mukai): take care of parent as select_file_dialog_impl_gtk2. |
243 dialog_ = gtk_print_unix_dialog_new(NULL, NULL); | 243 dialog_ = gtk_print_unix_dialog_new(NULL, NULL); |
244 libgtk2ui::SetGtkTransientForAura(dialog_, parent_view); | 244 libgtk2ui::SetGtkTransientForAura(dialog_, parent_view); |
245 parent_view->AddObserver(this); | 245 if (parent_view) |
| 246 parent_view->AddObserver(this); |
246 g_signal_connect(dialog_, "delete-event", | 247 g_signal_connect(dialog_, "delete-event", |
247 G_CALLBACK(gtk_widget_hide_on_delete), NULL); | 248 G_CALLBACK(gtk_widget_hide_on_delete), NULL); |
248 | 249 |
249 | 250 |
250 // Set modal so user cannot focus the same tab and press print again. | 251 // Set modal so user cannot focus the same tab and press print again. |
251 gtk_window_set_modal(GTK_WINDOW(dialog_), TRUE); | 252 gtk_window_set_modal(GTK_WINDOW(dialog_), TRUE); |
252 | 253 |
253 // Since we only generate PDF, only show printers that support PDF. | 254 // Since we only generate PDF, only show printers that support PDF. |
254 // TODO(thestig) Add more capabilities to support? | 255 // TODO(thestig) Add more capabilities to support? |
255 GtkPrintCapabilities cap = static_cast<GtkPrintCapabilities>( | 256 GtkPrintCapabilities cap = static_cast<GtkPrintCapabilities>( |
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
442 context_->InitWithSettings(*settings); | 443 context_->InitWithSettings(*settings); |
443 } | 444 } |
444 | 445 |
445 void PrintDialogGtk2::OnWindowDestroying(aura::Window* window) { | 446 void PrintDialogGtk2::OnWindowDestroying(aura::Window* window) { |
446 DCHECK_EQ(libgtk2ui::GetAuraTransientParent(dialog_), window); | 447 DCHECK_EQ(libgtk2ui::GetAuraTransientParent(dialog_), window); |
447 | 448 |
448 libgtk2ui::ClearAuraTransientParent(dialog_); | 449 libgtk2ui::ClearAuraTransientParent(dialog_); |
449 window->RemoveObserver(this); | 450 window->RemoveObserver(this); |
450 Release(); | 451 Release(); |
451 } | 452 } |
OLD | NEW |