summaryrefslogtreecommitdiffstats
path: root/src/desktop.cpp
diff options
context:
space:
mode:
authorTavmjong Bah <tavmjong@free.fr>2015-12-21 09:48:56 +0000
committertavmjong-free <tavmjong@free.fr>2015-12-21 09:48:56 +0000
commit6f817f71119774c09888fddf8ba28a96c4546165 (patch)
tree5d1296a00c47067231691b2e9eb31ea0ee5c92de /src/desktop.cpp
parentfixes layer movement when there is a document scaling factor (diff)
downloadinkscape-6f817f71119774c09888fddf8ba28a96c4546165.tar.gz
inkscape-6f817f71119774c09888fddf8ba28a96c4546165.zip
Add option for checkerboard background.
Fixed bugs: - https://launchpad.net/bugs/397723 (bzr r14539)
Diffstat (limited to 'src/desktop.cpp')
-rw-r--r--src/desktop.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/desktop.cpp b/src/desktop.cpp
index 0aac46e8d..f099ba39f 100644
--- a/src/desktop.cpp
+++ b/src/desktop.cpp
@@ -210,9 +210,11 @@ SPDesktop::init (SPNamedView *nv, SPCanvas *aCanvas, Inkscape::UI::View::EditWid
main = (SPCanvasGroup *) sp_canvas_item_new (root, SP_TYPE_CANVAS_GROUP, NULL);
g_signal_connect (G_OBJECT (main), "event", G_CALLBACK (sp_desktop_root_handler), this);
+ /* This is the background the page sits on. */
table = sp_canvas_item_new (main, SP_TYPE_CTRLRECT, NULL);
SP_CTRLRECT(table)->setRectangle(Geom::Rect(Geom::Point(-80000, -80000), Geom::Point(80000, 80000)));
SP_CTRLRECT(table)->setColor(0x00000000, true, 0x00000000);
+ SP_CTRLRECT(table)->setCheckerboard( false );
sp_canvas_item_move_to_z (table, 0);
page = sp_canvas_item_new (main, SP_TYPE_CTRLRECT, NULL);
@@ -1731,14 +1733,16 @@ static void _namedview_modified (SPObject *obj, guint flags, SPDesktop *desktop)
if (flags & SP_OBJECT_MODIFIED_FLAG) {
- /* Show/hide page background */
- if (nv->pagecolor | (0xff != 0xffffffff)) {
- sp_canvas_item_show (desktop->table);
- ((CtrlRect *) desktop->table)->setColor(0x00000000, true, nv->pagecolor | 0xff);
- sp_canvas_item_move_to_z (desktop->table, 0);
+ /* Set page background */
+ sp_canvas_item_show (desktop->table);
+ if (nv->pagecheckerboard) {
+ ((CtrlRect *) desktop->table)->setCheckerboard( true );
+ ((CtrlRect *) desktop->table)->setColor(0x00000000, true, nv->pagecolor ); // | 0xff);
} else {
- sp_canvas_item_hide (desktop->table);
+ ((CtrlRect *) desktop->table)->setCheckerboard( false );
+ ((CtrlRect *) desktop->table)->setColor(0x00000000, true, nv->pagecolor | 0xff);
}
+ sp_canvas_item_move_to_z (desktop->table, 0);
/* Show/hide page border */
if (nv->showborder) {