summaryrefslogtreecommitdiffstats
path: root/src/extension/internal
diff options
context:
space:
mode:
Diffstat (limited to 'src/extension/internal')
-rw-r--r--src/extension/internal/cairo-renderer.cpp2
-rw-r--r--src/extension/internal/javafx-out.cpp15
-rw-r--r--src/extension/internal/pdf-input-cairo.cpp14
-rw-r--r--src/extension/internal/pdfinput/pdf-input.cpp17
-rw-r--r--src/extension/internal/pdfinput/pdf-parser.cpp3
5 files changed, 21 insertions, 30 deletions
diff --git a/src/extension/internal/cairo-renderer.cpp b/src/extension/internal/cairo-renderer.cpp
index 61e943dba..09d69becb 100644
--- a/src/extension/internal/cairo-renderer.cpp
+++ b/src/extension/internal/cairo-renderer.cpp
@@ -507,7 +507,7 @@ static void sp_asbitmap_render(SPItem *item, CairoRenderContext *ctx)
// TODO this is stupid - we just converted to pixbuf format when generating the bitmap!
convert_pixbuf_normal_to_argb32(pb);
ctx->renderImage(pb, t, item->style);
- gdk_pixbuf_unref(pb);
+ g_object_unref(pb);
pb = 0;
}
g_slist_free (items);
diff --git a/src/extension/internal/javafx-out.cpp b/src/extension/internal/javafx-out.cpp
index 4cf6f3c4f..67c0fae66 100644
--- a/src/extension/internal/javafx-out.cpp
+++ b/src/extension/internal/javafx-out.cpp
@@ -130,21 +130,6 @@ static JavaFXOutput::String dstr(double d)
/**
- * Format a double as an integer
- */
-static JavaFXOutput::String istr(double d)
-{
- char dbuf[G_ASCII_DTOSTR_BUF_SIZE+1];
- g_ascii_formatd(dbuf, G_ASCII_DTOSTR_BUF_SIZE,
- "%.0f", (gdouble)d);
- JavaFXOutput::String s = dbuf;
- return s;
-}
-
-#define ISTR(d) (istr(d).c_str())
-
-
-/**
* Format an rgba() string
*/
static JavaFXOutput::String rgba(guint32 rgba)
diff --git a/src/extension/internal/pdf-input-cairo.cpp b/src/extension/internal/pdf-input-cairo.cpp
index bc76a30b5..36ef66713 100644
--- a/src/extension/internal/pdf-input-cairo.cpp
+++ b/src/extension/internal/pdf-input-cairo.cpp
@@ -32,6 +32,7 @@
#include <poppler/glib/poppler-page.h>
#include "ui/widget/spinbutton.h"
+#include <gdkmm/general.h>
namespace Inkscape {
namespace Extension {
@@ -482,9 +483,10 @@ bool PdfImportCairoDialog::_onExposePreview(GdkEventExpose */*event*/) {
if (!back_pixmap) {
return true;
}
- back_pixmap->draw_pixbuf(Glib::RefPtr<Gdk::GC>(), thumb, 0, 0, 0, 0,
- _thumb_width, _thumb_height,
- Gdk::RGB_DITHER_NONE, 0, 0);
+
+ Cairo::RefPtr<Cairo::Context> cr = back_pixmap->create_cairo_context();
+ Gdk::Cairo::set_source_pixbuf(cr, thumb, 0, 0);
+ cr->paint();
_previewArea->get_window()->set_back_pixmap(back_pixmap, false);
_previewArea->get_window()->clear();
}
@@ -493,9 +495,9 @@ bool PdfImportCairoDialog::_onExposePreview(GdkEventExpose */*event*/) {
if (_render_thumb) {
copy_cairo_surface_to_pixbuf(_cairo_surface, _thumb_data, thumb->gobj());
}
- _previewArea->get_window()->draw_pixbuf(Glib::RefPtr<Gdk::GC>(), thumb,
- 0, 0, 0, _render_thumb ? 0 : 20,
- -1, -1, Gdk::RGB_DITHER_NONE, 0, 0);
+ Cairo::RefPtr<Cairo::Context> cr = _previewArea->get_window()->create_cairo_context();
+ Gdk::Cairo::set_source_pixbuf(cr, thumb, 0, _render_thumb ? 0 : 20);
+ cr->paint();
return true;
}
diff --git a/src/extension/internal/pdfinput/pdf-input.cpp b/src/extension/internal/pdfinput/pdf-input.cpp
index ee091d54b..eff488c9d 100644
--- a/src/extension/internal/pdfinput/pdf-input.cpp
+++ b/src/extension/internal/pdfinput/pdf-input.cpp
@@ -51,6 +51,8 @@
#include "ui/widget/spinbutton.h"
#include <glibmm/i18n.h>
+#include <gdkmm/general.h>
+
namespace Inkscape {
namespace Extension {
namespace Internal {
@@ -513,10 +515,11 @@ bool PdfImportDialog::_onExposePreview(GdkEventExpose */*event*/) {
if (!back_pixmap) {
return true;
}
- back_pixmap->draw_pixbuf(Glib::RefPtr<Gdk::GC>(), thumb, 0, 0, 0, 0,
- _thumb_width, _thumb_height,
- Gdk::RGB_DITHER_NONE, 0, 0);
- _previewArea->get_window()->set_back_pixmap(back_pixmap, false);
+
+ Cairo::RefPtr<Cairo::Context> cr = back_pixmap->create_cairo_context();
+ Gdk::Cairo::set_source_pixbuf(cr, thumb, 0, 0);
+ cr->paint();
+ _previewArea->get_window()->set_back_pixmap(back_pixmap, false);
_previewArea->get_window()->clear();
}
#ifdef HAVE_POPPLER_CAIRO
@@ -525,10 +528,10 @@ bool PdfImportDialog::_onExposePreview(GdkEventExpose */*event*/) {
copy_cairo_surface_to_pixbuf(_cairo_surface, _thumb_data, thumb->gobj());
}
#endif
- _previewArea->get_window()->draw_pixbuf(Glib::RefPtr<Gdk::GC>(), thumb,
- 0, 0, 0, _render_thumb ? 0 : 20,
- -1, -1, Gdk::RGB_DITHER_NONE, 0, 0);
+ Cairo::RefPtr<Cairo::Context> cr = _previewArea->get_window()->create_cairo_context();
+ Gdk::Cairo::set_source_pixbuf(cr, thumb, 0, _render_thumb ? 0 : 20);
+ cr->paint();
return true;
}
diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp
index 5347a85ac..5e8b005e2 100644
--- a/src/extension/internal/pdfinput/pdf-parser.cpp
+++ b/src/extension/internal/pdfinput/pdf-parser.cpp
@@ -3199,7 +3199,8 @@ void PdfParser::opMarkPoint(Object args[], int numArgs) {
void PdfParser::saveState() {
builder->saveState();
- state = state->save();
+// state = state->save(); // nasty hack to prevent GfxRadialShading from getting corrupted during copy operation
+ state->save(); // see LP Bug 919176 comment 8
clipHistory = clipHistory->save();
}