David PHAM-VAN

Fix print dialog crash on Linux

# Changelog
## 5.6.8
- Fix print dialog crash on Linux
## 5.6.7
- Fix imports for Dart 2.15
... ...
... ... @@ -105,6 +105,9 @@ static void job_completed(GtkPrintJob* gtk_print_job,
gpointer user_data,
const GError* error) {
auto job = static_cast<print_job*>(user_data);
if (job->dialog) {
gtk_widget_destroy(GTK_WIDGET(job->dialog));
}
on_completed(job, error == nullptr,
error != nullptr ? error->message : nullptr);
}
... ... @@ -135,8 +138,7 @@ bool print_job::print_pdf(const gchar* name,
setup = gtk_page_setup_new();
} else {
auto dialog =
GTK_PRINT_UNIX_DIALOG(gtk_print_unix_dialog_new(name, nullptr));
dialog = GTK_PRINT_UNIX_DIALOG(gtk_print_unix_dialog_new(name, nullptr));
gtk_print_unix_dialog_set_manual_capabilities(
dialog, (GtkPrintCapabilities)(GTK_PRINT_CAPABILITY_GENERATE_PDF));
gtk_print_unix_dialog_set_embed_page_setup(dialog, true);
... ... @@ -157,7 +159,7 @@ bool print_job::print_pdf(const gchar* name,
gtk_print_unix_dialog_get_settings(GTK_PRINT_UNIX_DIALOG(dialog));
setup = gtk_print_unix_dialog_get_page_setup(
GTK_PRINT_UNIX_DIALOG(dialog));
gtk_widget_destroy(GTK_WIDGET(dialog));
gtk_widget_hide(GTK_WIDGET(dialog));
loop = false;
} break;
case GTK_RESPONSE_APPLY: // Preview
... ...
... ... @@ -31,6 +31,8 @@ class print_job {
GtkPrintJob* printJob;
public:
GtkPrintUnixDialog* dialog = nullptr;
print_job(int index);
~print_job();
... ...
... ... @@ -6,7 +6,7 @@ description: >
homepage: https://github.com/DavBfr/dart_pdf/tree/master/printing
repository: https://github.com/DavBfr/dart_pdf
issue_tracker: https://github.com/DavBfr/dart_pdf/issues
version: 5.6.7
version: 5.6.8
environment:
sdk: ">=2.12.0 <3.0.0"
... ...