Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Maintenance:7072
wxWidgets-3_0-nostl.openSUSE_Leap_42.3_Update
0001-Fix-wxPrintDialog-when-used-directly-see-1...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0001-Fix-wxPrintDialog-when-used-directly-see-16821.patch of Package wxWidgets-3_0-nostl.openSUSE_Leap_42.3_Update
From a2f1bc1fdec222f3be7b7c5745ebc52c3c85a51c Mon Sep 17 00:00:00 2001 From: Paul Cornett <paulcor@users.noreply.github.com> Date: Mon, 11 May 2015 10:14:34 -0700 Subject: [PATCH] Fix wxPrintDialog when used directly, see #16821 --- src/gtk/print.cpp | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/gtk/print.cpp b/src/gtk/print.cpp index 2d70a1b..675a3ea 100644 --- a/src/gtk/print.cpp +++ b/src/gtk/print.cpp @@ -32,7 +32,6 @@ #include "wx/fontutil.h" #include "wx/dynlib.h" #include "wx/paper.h" -#include "wx/scopeguard.h" #include "wx/modalhook.h" #include <gtk/gtk.h> @@ -612,6 +611,11 @@ wxGtkPrintDialog::wxGtkPrintDialog( wxWindow *parent, wxPrintDialogData *data ) m_parent = parent; SetShowDialog(true); + + const wxPrintData& printData = m_printDialogData.GetPrintData(); + wxGtkPrintNativeData* native = + static_cast<wxGtkPrintNativeData*>(printData.GetNativeData()); + native->SetPrintJob(gtk_print_operation_new()); } wxGtkPrintDialog::wxGtkPrintDialog( wxWindow *parent, wxPrintData *data ) @@ -625,11 +629,22 @@ wxGtkPrintDialog::wxGtkPrintDialog( wxWindow *parent, wxPrintData *data ) m_parent = parent; SetShowDialog(true); + + const wxPrintData& printData = m_printDialogData.GetPrintData(); + wxGtkPrintNativeData* native = + static_cast<wxGtkPrintNativeData*>(printData.GetNativeData()); + native->SetPrintJob(gtk_print_operation_new()); } wxGtkPrintDialog::~wxGtkPrintDialog() { + const wxPrintData& printData = m_printDialogData.GetPrintData(); + wxGtkPrintNativeData* native = + static_cast<wxGtkPrintNativeData*>(printData.GetNativeData()); + GtkPrintOperation* printOp = native->GetPrintJob(); + g_object_unref(printOp); + native->SetPrintJob(NULL); } // This is called even if we actually don't want the dialog to appear. @@ -921,10 +936,9 @@ bool wxGtkPrinter::Print(wxWindow *parent, wxPrintout *printout, bool prompt ) wxPrintData printdata = GetPrintDialogData().GetPrintData(); wxGtkPrintNativeData *native = (wxGtkPrintNativeData*) printdata.GetNativeData(); - wxGtkObject<GtkPrintOperation> printOp(gtk_print_operation_new()); - native->SetPrintJob(printOp); - wxON_BLOCK_EXIT_OBJ1(*native, wxGtkPrintNativeData::SetPrintJob, - static_cast<GtkPrintOperation*>(NULL)); + // wxGtkPrintDialog needs to be created first as it creates the PrintOp + wxGtkPrintDialog dialog(parent, &m_printDialogData); + GtkPrintOperation* printOp = native->GetPrintJob(); wxPrinterToGtkData dataToSend; dataToSend.printer = this; @@ -937,7 +951,6 @@ bool wxGtkPrinter::Print(wxWindow *parent, wxPrintout *printout, bool prompt ) // This is used to setup the DC and // show the dialog if desired - wxGtkPrintDialog dialog( parent, &m_printDialogData ); dialog.SetPrintDC(m_dc); dialog.SetShowDialog(prompt); -- 2.7.0
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor