summaryrefslogtreecommitdiffstats
path: root/src/desktop.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/desktop.cpp')
-rw-r--r--src/desktop.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/desktop.cpp b/src/desktop.cpp
index a9c4e5d7f..5ab682cd0 100644
--- a/src/desktop.cpp
+++ b/src/desktop.cpp
@@ -1105,13 +1105,21 @@ void SPDesktop::clearWaitingCursor()
void SPDesktop::toggleGrid()
{
- if(gridgroup) {
- grids_visible = !grids_visible;
- if (grids_visible) {
- sp_canvas_item_show(SP_CANVAS_ITEM(gridgroup));
- } else {
- sp_canvas_item_hide(SP_CANVAS_ITEM(gridgroup));
+ if (namedview->grids) {
+ if(gridgroup) {
+ grids_visible = !grids_visible;
+ if (grids_visible) {
+ sp_canvas_item_show(SP_CANVAS_ITEM(gridgroup));
+ } else {
+ sp_canvas_item_hide(SP_CANVAS_ITEM(gridgroup));
+ }
}
+ } else {
+ //there is no grid present at the moment. add a rectangular grid and make it visible
+ Inkscape::XML::Node *repr = SP_OBJECT_REPR(namedview);
+ Inkscape::CanvasGrid::writeNewGridToRepr(repr, "xygrid");
+ grids_visible = true;
+ sp_canvas_item_show(SP_CANVAS_ITEM(gridgroup));
}
}