summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTavmjong Bah <tavmjong@free.fr>2018-11-07 15:51:08 +0000
committerTavmjong Bah <tavmjong@free.fr>2018-11-07 15:51:08 +0000
commit9c18fdd9187e7e190939d68a5d684214a8491624 (patch)
tree2aefe703d31703bbd64addd5162d23e3741178b5 /src
parentAllow symbolic icons in default icon theme (diff)
downloadinkscape-9c18fdd9187e7e190939d68a5d684214a8491624.tar.gz
inkscape-9c18fdd9187e7e190939d68a5d684214a8491624.zip
Replace Broken Image xpm by SVG.
Diffstat (limited to 'src')
-rw-r--r--src/brokenimage.xpm308
-rw-r--r--src/display/cairo-utils.cpp12
-rw-r--r--src/object/sp-image.cpp23
-rw-r--r--src/object/sp-object.cpp5
4 files changed, 31 insertions, 317 deletions
diff --git a/src/brokenimage.xpm b/src/brokenimage.xpm
deleted file mode 100644
index b8c55cdd9..000000000
--- a/src/brokenimage.xpm
+++ /dev/null
@@ -1,308 +0,0 @@
-/* XPM */
-static const char * brokenimage_xpm[] = {
-"64 64 241 2",
-" c #FC0C0C",
-". c #FFFFFF",
-"+ c #FDE4E4",
-"@ c #FDDADA",
-"# c #FDDDDD",
-"$ c #FDF6F6",
-"% c #FEFEFE",
-"& c #F9AEAE",
-"* c #F33E3E",
-"= c #F22525",
-"- c #F22C2C",
-"; c #F67D7D",
-"> c #FEF4F4",
-", c #FEFDFD",
-"' c #F56464",
-") c #F00101",
-"! c #F00000",
-"~ c #F12020",
-"{ c #FCD4D4",
-"] c #F45151",
-"^ c #F11717",
-"/ c #FCD1D1",
-"( c #F34949",
-"_ c #F56D6D",
-": c #F23333",
-"< c #F01313",
-"[ c #F56060",
-"} c #F56262",
-"| c #F12121",
-"1 c #FBC5C5",
-"2 c #FEF6F6",
-"3 c #FAB7B7",
-"4 c #F23838",
-"5 c #F11A1A",
-"6 c #F79393",
-"7 c #FDF1F1",
-"8 c #F11B1B",
-"9 c #FAB9B9",
-"0 c #FAB5B5",
-"a c #F34E4E",
-"b c #F89696",
-"c c #FEFBFB",
-"d c #FCDFDF",
-"e c #F34545",
-"f c #F34747",
-"g c #FAC2C2",
-"h c #FCE2E2",
-"i c #FDE9E9",
-"j c #F57171",
-"k c #F00303",
-"l c #F00202",
-"m c #FBCBCB",
-"n c #FEF1F1",
-"o c #F67575",
-"p c #F00A0A",
-"q c #F11D1D",
-"r c #F9B5B5",
-"s c #FFFEFE",
-"t c #FCD8D8",
-"u c #F23939",
-"v c #F00909",
-"w c #F78686",
-"x c #FEF9F9",
-"y c #F89D9D",
-"z c #FBC3C3",
-"A c #FAB8B8",
-"B c #F22E2E",
-"C c #FBD2D2",
-"D c #FDE8E8",
-"E c #F67474",
-"F c #F00E0E",
-"G c #FAC3C3",
-"H c #FDF0F0",
-"I c #F45353",
-"J c #F00D0D",
-"K c #F68181",
-"L c #FABABA",
-"M c #F00606",
-"N c #F34848",
-"O c #F9ADAD",
-"P c #F9A2A2",
-"Q c #F11515",
-"R c #F01212",
-"S c #F45454",
-"T c #F11818",
-"U c #F67777",
-"V c #F00808",
-"W c #FCDDDD",
-"X c #FCD3D3",
-"Y c #F67C7C",
-"Z c #F55C5C",
-"` c #F55B5B",
-" . c #F56969",
-".. c #F9ABAB",
-"+. c #FFFDFD",
-"@. c #000000",
-"#. c #6B6B6B",
-"$. c #F3F3F3",
-"%. c #F9F9F9",
-"&. c #6E6E6E",
-"*. c #434343",
-"=. c #060606",
-"-. c #373737",
-";. c #EAEAEA",
-">. c #FAFAFA",
-",. c #3F3F3F",
-"'. c #353535",
-"). c #F5F5F5",
-"!. c #E4E4E4",
-"~. c #474747",
-"{. c #080808",
-"]. c #171717",
-"^. c #919191",
-"/. c #CCCCCC",
-"(. c #252525",
-"_. c #737373",
-":. c #1C1C1C",
-"<. c #D7D7D7",
-"[. c #A5A5A5",
-"}. c #858585",
-"|. c #646464",
-"1. c #202020",
-"2. c #E8E8E8",
-"3. c #494949",
-"4. c #262626",
-"5. c #E2E2E2",
-"6. c #B7B7B7",
-"7. c #010101",
-"8. c #D1D1D1",
-"9. c #3C3C3C",
-"0. c #E5E5E5",
-"a. c #939393",
-"b. c #636363",
-"c. c #FCFCFC",
-"d. c #6C6C6C",
-"e. c #181818",
-"f. c #969696",
-"g. c #090909",
-"h. c #131313",
-"i. c #949494",
-"j. c #F6F6F6",
-"k. c #2B2B2B",
-"l. c #1E1E1E",
-"m. c #0A0A0A",
-"n. c #E3E3E3",
-"o. c #F2F2F2",
-"p. c #606060",
-"q. c #525252",
-"r. c #C3C3C3",
-"s. c #DADADA",
-"t. c #E1E1E1",
-"u. c #7A7A7A",
-"v. c #4A4A4A",
-"w. c #121212",
-"x. c #D5D5D5",
-"y. c #BCBCBC",
-"z. c #414141",
-"A. c #3A3A3A",
-"B. c #1B1B1B",
-"C. c #DBDBDB",
-"D. c #8B8B8B",
-"E. c #5F5F5F",
-"F. c #7D7D7D",
-"G. c #444444",
-"H. c #070707",
-"I. c #141414",
-"J. c #838383",
-"K. c #C6C6C6",
-"L. c #1F1F1F",
-"M. c #0C0C0C",
-"N. c #7F7F7F",
-"O. c #6A6A6A",
-"P. c #343434",
-"Q. c #0B0B0B",
-"R. c #D6D6D6",
-"S. c #363636",
-"T. c #050505",
-"U. c #ABABAB",
-"V. c #CBCBCB",
-"W. c #323232",
-"X. c #A4A4A4",
-"Y. c #AAAAAA",
-"Z. c #9F9F9F",
-"`. c #707070",
-" + c #E9E9E9",
-".+ c #626262",
-"++ c #151515",
-"@+ c #1D1D1D",
-"#+ c #DEDEDE",
-"$+ c #8E8E8E",
-"%+ c #666666",
-"&+ c #696969",
-"*+ c #FBFBFB",
-"=+ c #B3B3B3",
-"-+ c #2D2D2D",
-";+ c #F4F4F4",
-">+ c #DCDCDC",
-",+ c #4B4B4B",
-"'+ c #E0E0E0",
-")+ c #303030",
-"!+ c #E7E7E7",
-"~+ c #383838",
-"{+ c #8F8F8F",
-"]+ c #888888",
-"^+ c #272727",
-"/+ c #3E3E3E",
-"(+ c #C7C7C7",
-"_+ c #7C7C7C",
-":+ c #ACACAC",
-"<+ c #7E7E7E",
-"[+ c #E6E6E6",
-"}+ c #B2B2B2",
-"|+ c #D0D0D0",
-"1+ c #0F0F0F",
-"2+ c #656565",
-"3+ c #6D6D6D",
-"4+ c #020202",
-"5+ c #ECECEC",
-"6+ c #535353",
-"7+ c #4D4D4D",
-"8+ c #575757",
-"9+ c #161616",
-"0+ c #CDCDCD",
-"a+ c #505050",
-"b+ c #616161",
-"c+ c #0D0D0D",
-"d+ c #686868",
-"e+ c #F8F8F8",
-"f+ c #565656",
-"g+ c #D3D3D3",
-"h+ c #5B5B5B",
-"i+ c #6F6F6F",
-"j+ c #2A2A2A",
-"k+ c #555555",
-"l+ c #585858",
-"m+ c #EFEFEF",
-"n+ c #BBBBBB",
-"o+ c #0E0E0E",
-"p+ c #101010",
-"q+ c #A3A3A3",
-"r+ c #111111",
-" ",
-" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . . . + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # $ . . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . % & * = = = = = = = = = = = = = = = - ; > . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . , ' ) ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ~ { . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . , ] ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ^ / . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . , ] ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ^ / . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . , ] ! ! ! ) ( _ : ! ! ! < [ } < ! ! ! ^ / . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . , ] ! ! ! | 1 2 3 4 ) 5 6 7 + ] ! ! ! ^ / . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . , ] ! ! ! 8 9 , % 0 a b c . d e ! ! ! ^ / . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . , ] ! ! ! ! f g . % h c . i j k ! ! ! ^ / . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . , ] ! ! ! ! l e m % . . n o p ! ! ! ! ^ / . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . , ] ! ! ! ! ! q r % . s t * ) ! ! ! ! ^ / . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . , ] ! ! ! ! ^ b c . , % % 0 u ! ! ! ! ^ / . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . , ] ! ! ! v w x . i y z . % A B ! ! ! ^ / . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . , ] ! ! ! = C . D E F e G % H I ! ! ! ^ / . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . , ] ! ! ! J K L ' M ! l N O P - ! ! ! ^ / . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . , ] ! ! ! ! p 5 ) ! ! ! ! Q R ! ! ! ! ^ / . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . , ] ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ^ / . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . , S ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! T / . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . , U V ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) l : W . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . s X Y Z ` ` ` ` ` ` ` ` ` ` ` ` ` ` .... . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . . . +.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.. . . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . @.#.. . . . . @.#.. . . . . . . . @.#.. . . . . . . . . . . . . . @.#.. . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . @.#.. . . . . $.%.. . . . . . . . @.#.. . . . . . . . . . . . . . @.#.. . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . @.#.. . . . . @.#.. @.&.*.=.-.;.. @.#.>.,.'.).!.~.{.].^.. /.(.{._.@.#.. . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . @.#.. . . . . @.#.. @.:.<.[.@.}.. @.#.|.1.2.. 3.4.5.6.7.8.9.1.0.a.@.#.. . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . @.#.. . . . . @.#.. @.b.. c.@.d.. @.e.@.f.. . g.=.h.h.@.i.{.b.. j.@.#.. . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . @.#.. . . . . @.#.. @.#.. . @.#.. @.k.3.l.).. m.~.n.n.n.o.{.p.. $.@.#.. . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . @.q.r.r.r.s.. @.#.. @.#.. . @.#.. @.#.t.g.u.. v.w.x.y.z.<.A.B.C.D.@.#.. . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . @.@.@.@.@.E.. @.#.. @.#.. . @.#.. @.#.. F.=.s.n.G.H.I.J.. K.L.M.N.{.#.. . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . @.#.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . $.%.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . @.#.. @.O.P.Q.^.#.=.A.).. R.S.T.:.U.. V.(.m.u.g.#.. !.~.{.].^.. . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . @.#.. @.4.t.W.=.X.i.@.Y.. Z.`. +.+++. A.@+#+$+@.#.. 3.4.5.6.7.8.. . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . @.#.. @.%+. &+@.*+x.@.i.. =+-+I.m.@.. H..+. ;+@.#.. g.=.h.h.@.i.. . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . @.#.. @.#.. #.@.. <.@.a.. ].A.>+`.@.. H.p.. ;+@.#.. m.~.n.n.n.o.. . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . @.#.. @.#.. #.@.. <.@.a.. m.,+'+)+@.!+~+B.>+{+@.#.. v.w.x.y.z.<.. . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . @.#.. @.#.. #.@.. <.@.a.. ]+m.^+6.]./+(+L.M._+@.&.. n.G.H.I.J.. . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . :+<+[+}+@.f.. . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |+'.T.1+2+%.. . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . ).N.. . . . . . 3+{.I.. . . . . . . . . . . . . . . . . . . . . . . . . @.#.. . . . . ",
-" . . . . . . . . . . . . . . . . . . . Y.@.. . . . . . 4+p.. . . . . . . . . . . . . . . . . . . . . . . . . . @.#.. . . . . ",
-" . . . . . @.&.*.=.-.;.. 5+6+M.m.7+2.. @.@.@.. . . . @.@.@.@.5+6+M.m.7+2.. @.#.. . @.#.. @.&.*.=.-.;.. /.(.{._.@.#.. . . . . ",
-" . . . . . @.:.<.[.@.}.. 8+9+0+8.e.a+. %+@.$.. . . . $.@.%+$.8+9+0+8.e.a+. @.#.. . @.#.. @.:.<.[.@.}.. 9.1.0.a.@.#.. . . . . ",
-" . . . . . @.b.. c.@.d.. M.p.. . b+Q.. #.@.. . . . . . @.#.. M.p.. . b+Q.. @.#.. . @.#.. @.b.. c.@.d.. {.b.. j.@.#.. . . . . ",
-" . . . . . @.#.. . @.#.. M.b+. . b+c+. #.@.. . . . . . @.#.. M.b+. . b+c+. @.d+. e+@.#.. @.#.. . @.#.. {.p.. $.@.#.. . . . . ",
-" . . . . . @.#.. . @.#.. f+9+x.g+].h+. i+@.s.% . . . . @.#.. f+9+x.g+].h+. e.j+ +$+4+#.. @.#.. . @.#.. A.B.C.D.@.#.. . . . . ",
-" . . . . . @.#.. . @.#.. 5+k+Q.M.l+m+. n+o+p+o.. . . . @.#.. 5+k+Q.M.l+m+. q+h.r+^.h.#.. @.#.. . @.#.. K.L.M.N.{.#.. . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-" "};
diff --git a/src/display/cairo-utils.cpp b/src/display/cairo-utils.cpp
index 516d52678..36f2d3f91 100644
--- a/src/display/cairo-utils.cpp
+++ b/src/display/cairo-utils.cpp
@@ -396,8 +396,10 @@ Pixbuf *Pixbuf::create_from_buffer(gchar *&&data, gsize len, double svgdpi, std:
if(idx != std::string::npos)
{
if (boost::iequals(fn.substr(idx+1).c_str(), "svg")) {
- SPDocument *svgDoc = SPDocument::createNewDoc(fn.c_str(), TRUE);
- // Check the document loaded properly
+
+ SPDocument *svgDoc = SPDocument::createNewDocFromMem (data, len, true);
+
+ // Check the document loaded properly
if (svgDoc == nullptr) {
return nullptr;
}
@@ -406,12 +408,13 @@ Pixbuf *Pixbuf::create_from_buffer(gchar *&&data, gsize len, double svgdpi, std:
svgDoc->doUnref();
return nullptr;
}
+
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
double dpi = prefs->getDouble("/dialogs/import/defaultxdpi/value", 96.0);
if (svgdpi && svgdpi > 0) {
dpi = svgdpi;
}
- std::cout << dpi << "dpi" << std::endl;
+
// Get the size of the document
Inkscape::Util::Quantity svgWidth = svgDoc->getWidth();
Inkscape::Util::Quantity svgHeight = svgDoc->getHeight();
@@ -454,6 +457,7 @@ Pixbuf *Pixbuf::create_from_buffer(gchar *&&data, gsize len, double svgdpi, std:
buf = gdk_pixbuf_loader_get_pixbuf(loader);
}
+
if (buf) {
g_object_ref(buf);
pb = new Pixbuf(buf);
@@ -463,6 +467,7 @@ Pixbuf *Pixbuf::create_from_buffer(gchar *&&data, gsize len, double svgdpi, std:
gchar *fmt_name = gdk_pixbuf_format_get_name(fmt);
pb->_setMimeData((guchar *) data, len, fmt_name);
g_free(fmt_name);
+ g_object_unref(loader);
} else {
pb->_setMimeData((guchar *) data, len, "svg");
}
@@ -470,7 +475,6 @@ Pixbuf *Pixbuf::create_from_buffer(gchar *&&data, gsize len, double svgdpi, std:
std::cerr << "Pixbuf::create_from_file: failed to load contents: " << fn << std::endl;
g_free(data);
}
- g_object_unref(loader);
// TODO: we could also read DPI, ICC profile, gamma correction, and other information
// from the file. This can be done by using format-specific libraries e.g. libpng.
diff --git a/src/object/sp-image.cpp b/src/object/sp-image.cpp
index ee0efc720..13298dad7 100644
--- a/src/object/sp-image.cpp
+++ b/src/object/sp-image.cpp
@@ -574,6 +574,20 @@ Inkscape::DrawingItem* SPImage::show(Inkscape::Drawing &drawing, unsigned int /*
return ai;
}
+static std::string broken_image_svg = R"A(
+<svg xmlns="http://www.w3.org/2000/svg" width="640" height="640">
+ <rect width="100%" height="100%" style="fill:white;stroke:red;stroke-width:20px"/>
+ <rect x="35%" y="10%" width="30%" height="30%" style="fill:red"/>
+ <path d="m 280,120 80,80" style="fill:none;stroke:white;stroke-width:20px"/>
+ <path d="m 360,120 -80,80" style="fill:none;stroke:white;stroke-width:20px"/>
+ <g style="font-family:sans-serif;font-size:100px;font-weight:bold;text-anchor:middle">
+ <text x="50%" y="380">Linked</text>
+ <text x="50%" y="490">Image</text>
+ <text x="50%" y="600">Not Found</text>
+ </g>
+</svg>
+)A";
+
Inkscape::Pixbuf *sp_image_repr_read_image(gchar const *href, gchar const *absref, gchar const *base, double svgdpi)
{
Inkscape::Pixbuf *inkpb = nullptr;
@@ -621,12 +635,13 @@ Inkscape::Pixbuf *sp_image_repr_read_image(gchar const *href, gchar const *absre
return inkpb;
}
}
+
/* Nope: We do not find any valid pixmap file :-( */
- GdkPixbuf *pixbuf = gdk_pixbuf_new_from_xpm_data((const gchar **) brokenimage_xpm);
- inkpb = new Inkscape::Pixbuf(pixbuf);
+ // Need a "fake" filename to trigger svg mode.
+ inkpb = Inkscape::Pixbuf::create_from_buffer(broken_image_svg, 0, "brokenimage.svg");
- /* It should be included xpm, so if it still does not does load, */
- /* our libraries are broken */
+ /* It's included here so if it still does not does load, */
+ /* our libraries are broken! */
g_assert (inkpb != nullptr);
return inkpb;
diff --git a/src/object/sp-object.cpp b/src/object/sp-object.cpp
index 07c82cbd5..7caab7d70 100644
--- a/src/object/sp-object.cpp
+++ b/src/object/sp-object.cpp
@@ -1170,7 +1170,10 @@ void SPObject::requestDisplayUpdate(unsigned int flags)
{
g_return_if_fail( this->document != nullptr );
- if (update_in_progress) {
+ // update_in_progress is a global variable. It can be come greater than one when reading in a second
+ // document (as in creating the broken image bitmap). It is still an important warning so we don't
+ // remove it entirely. We probably shouldn't be calling requestDisplayUpdate in the set() methods.
+ if (update_in_progress > 2) {
g_print("WARNING: Requested update while update in progress, counter = %d\n", update_in_progress);
}