Merge lp:~tghs/inkscape/widget_icon_background_render into lp:~inkscape.dev/inkscape/trunk

Proposed by Tim Sheridan
Status: Merged
Approved by: jazzynico
Approved revision: 15445
Merged at revision: 15446
Proposed branch: lp:~tghs/inkscape/widget_icon_background_render
Merge into: lp:~inkscape.dev/inkscape/trunk
Diff against target: 55 lines (+16/-1)
3 files modified
AUTHORS (+1/-0)
src/extension/internal/cairo-render-context.cpp (+1/-1)
src/widgets/icon.cpp (+14/-0)
To merge this branch: bzr merge lp:~tghs/inkscape/widget_icon_background_render
Reviewer Review Type Date Requested Status
jazzynico (community) testing Approve
Martin Owens code Approve
Review via email: mp+315514@code.launchpad.net

Description of the change

Render document background in Icon widget

This fixes bug #1537497.

To post a comment you must log in.
Revision history for this message
Martin Owens (doctormo) wrote :

Looks good to me.

review: Approve (code)
Revision history for this message
jazzynico (jazzynico) wrote :

Tested successfully on Xubuntu 16.04, lp:inkscape rev. 15445.

review: Approve (testing)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'AUTHORS'
--- AUTHORS 2016-10-08 06:16:53 +0000
+++ AUTHORS 2017-01-24 21:46:33 +0000
@@ -145,6 +145,7 @@
145Tom von Schwerdtner145Tom von Schwerdtner
146Danilo Šegan146Danilo Šegan
147Abhishek Sharma147Abhishek Sharma
148Tim Sheridan
148Shivaken149Shivaken
149Michael Sloan150Michael Sloan
150John Smith151John Smith
151152
=== modified file 'src/extension/internal/cairo-render-context.cpp'
--- src/extension/internal/cairo-render-context.cpp 2016-09-27 08:51:26 +0000
+++ src/extension/internal/cairo-render-context.cpp 2017-01-24 21:46:33 +0000
@@ -865,7 +865,7 @@
865 cairo_scale(_cr, Inkscape::Util::Quantity::convert(1, "px", "pt"), Inkscape::Util::Quantity::convert(1, "px", "pt"));865 cairo_scale(_cr, Inkscape::Util::Quantity::convert(1, "px", "pt"), Inkscape::Util::Quantity::convert(1, "px", "pt"));
866 } else if (cairo_surface_get_content(_surface) != CAIRO_CONTENT_ALPHA) {866 } else if (cairo_surface_get_content(_surface) != CAIRO_CONTENT_ALPHA) {
867 // set background color on non-alpha surfaces867 // set background color on non-alpha surfaces
868 // TODO: bgcolor should be derived from SPDocument868 // TODO: bgcolor should be derived from SPDocument (see IconImpl)
869 cairo_set_source_rgb(_cr, 1.0, 1.0, 1.0);869 cairo_set_source_rgb(_cr, 1.0, 1.0, 1.0);
870 cairo_rectangle(_cr, 0, 0, _width, _height);870 cairo_rectangle(_cr, 0, 0, _width, _height);
871 cairo_fill(_cr);871 cairo_fill(_cr);
872872
=== modified file 'src/widgets/icon.cpp'
--- src/widgets/icon.cpp 2016-08-04 11:26:03 +0000
+++ src/widgets/icon.cpp 2017-01-24 21:46:33 +0000
@@ -35,6 +35,7 @@
35#include "display/drawing.h"35#include "display/drawing.h"
36#include "io/sys.h"36#include "io/sys.h"
37#include "sp-root.h"37#include "sp-root.h"
38#include "sp-namedview.h"
38#include "util/units.h"39#include "util/units.h"
3940
40#include "icon.h"41#include "icon.h"
@@ -1163,6 +1164,19 @@
1163 CAIRO_FORMAT_ARGB32, psize, psize, stride);1164 CAIRO_FORMAT_ARGB32, psize, psize, stride);
1164 Inkscape::DrawingContext dc(s, ua.min());1165 Inkscape::DrawingContext dc(s, ua.min());
11651166
1167 SPNamedView *nv = sp_document_namedview(doc, NULL);
1168 float bg_r = SP_RGBA32_R_F(nv->pagecolor);
1169 float bg_g = SP_RGBA32_G_F(nv->pagecolor);
1170 float bg_b = SP_RGBA32_B_F(nv->pagecolor);
1171 float bg_a = SP_RGBA32_A_F(nv->pagecolor);
1172
1173 cairo_t *cr = cairo_create(s);
1174 cairo_set_source_rgba(cr, bg_r, bg_g, bg_b, bg_a);
1175 cairo_rectangle(cr, 0, 0, psize, psize);
1176 cairo_fill(cr);
1177 cairo_save(cr);
1178 cairo_destroy(cr);
1179
1166 drawing.render(dc, ua);1180 drawing.render(dc, ua);
1167 cairo_surface_destroy(s);1181 cairo_surface_destroy(s);
11681182