diff options
| author | Nicolas Dufour <nicoduf@yahoo.fr> | 2009-08-12 14:00:19 +0000 |
|---|---|---|
| committer | JazzyNico <JazzyNico@users.sourceforge.net> | 2009-08-12 14:00:19 +0000 |
| commit | 3c5b9a5d0a9df79c757435ad63514287cd5b211b (patch) | |
| tree | 0a22f3d90db1a915fa9d3c8031e621ae082c23e7 /src/ui | |
| parent | Don't open 'Save as ...' dialog inside the application bundle on OS X when it... (diff) | |
| download | inkscape-3c5b9a5d0a9df79c757435ad63514287cd5b211b.tar.gz inkscape-3c5b9a5d0a9df79c757435ad63514287cd5b211b.zip | |
Fix for Bug #166678 (Paper size or orientation are not used when printing) by Adrian Johnson.
(bzr r8473)
Diffstat (limited to 'src/ui')
| -rw-r--r-- | src/ui/dialog/print.cpp | 15 | ||||
| -rw-r--r-- | src/ui/widget/page-sizer.cpp | 23 |
2 files changed, 23 insertions, 15 deletions
diff --git a/src/ui/dialog/print.cpp b/src/ui/dialog/print.cpp index 214b1a6db..d98d6a49e 100644 --- a/src/ui/dialog/print.cpp +++ b/src/ui/dialog/print.cpp @@ -188,12 +188,19 @@ Print::Print(SPDocument *doc, SPItem *base) : GtkPageSetup *page_setup = gtk_page_setup_new(); gdouble doc_width = sp_document_width(_doc) * PT_PER_PX; gdouble doc_height = sp_document_height(_doc) * PT_PER_PX; - GtkPaperSize *paper_size = gtk_paper_size_new_custom("custom", "custom", - doc_width, doc_height, GTK_UNIT_POINTS); + GtkPaperSize *paper_size; + if (sp_document_landscape(_doc)) { + gtk_page_setup_set_orientation (page_setup, GTK_PAGE_ORIENTATION_LANDSCAPE); + paper_size = gtk_paper_size_new_custom("custom", "custom", + doc_height, doc_width, GTK_UNIT_POINTS); + } else { + gtk_page_setup_set_orientation (page_setup, GTK_PAGE_ORIENTATION_PORTRAIT); + paper_size = gtk_paper_size_new_custom("custom", "custom", + doc_width, doc_height, GTK_UNIT_POINTS); + } + gtk_page_setup_set_paper_size (page_setup, paper_size); -#ifndef WIN32 gtk_print_operation_set_default_page_setup (_printop, page_setup); -#endif gtk_print_operation_set_use_full_page (_printop, TRUE); // set up signals diff --git a/src/ui/widget/page-sizer.cpp b/src/ui/widget/page-sizer.cpp index 02688a55e..6817d815b 100644 --- a/src/ui/widget/page-sizer.cpp +++ b/src/ui/widget/page-sizer.cpp @@ -345,11 +345,23 @@ PageSizer::setDim (double w, double h, bool changeList) _changedw_connection.block(); _changedh_connection.block(); + if ( w != h ) { + _landscapeButton.set_sensitive(true); + _portraitButton.set_sensitive (true); + _landscape = ( w > h ); + _landscapeButton.set_active(_landscape ? true : false); + _portraitButton.set_active (_landscape ? false : true); + } else { + _landscapeButton.set_sensitive(false); + _portraitButton.set_sensitive (false); + } + if (SP_ACTIVE_DESKTOP && !_widgetRegistry->isUpdating()) { SPDocument *doc = sp_desktop_document(SP_ACTIVE_DESKTOP); double const old_height = sp_document_height(doc); sp_document_set_width (doc, w, &_px_unit); sp_document_set_height (doc, h, &_px_unit); + sp_document_set_landscape (doc, _landscape); // The origin for the user is in the lower left corner; this point should remain stationary when // changing the page size. The SVG's origin however is in the upper left corner, so we must compensate for this Geom::Translate const vert_offset(Geom::Point(0, (old_height - h))); @@ -357,17 +369,6 @@ PageSizer::setDim (double w, double h, bool changeList) sp_document_done (doc, SP_VERB_NONE, _("Set page size")); } - if ( w != h ) { - _landscapeButton.set_sensitive(true); - _portraitButton.set_sensitive (true); - _landscape = ( w > h ); - _landscapeButton.set_active(_landscape ? true : false); - _portraitButton.set_active (_landscape ? false : true); - } else { - _landscapeButton.set_sensitive(false); - _portraitButton.set_sensitive (false); - } - if (changeList) { Gtk::TreeModel::Row row = (*find_paper_size(w, h)); |
