summaryrefslogtreecommitdiffstats
path: root/src/extension/internal/grid.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/extension/internal/grid.cpp')
-rw-r--r--src/extension/internal/grid.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/extension/internal/grid.cpp b/src/extension/internal/grid.cpp
index c7ebf2494..6b3f2efe3 100644
--- a/src/extension/internal/grid.cpp
+++ b/src/extension/internal/grid.cpp
@@ -86,7 +86,17 @@ Glib::ustring build_lines(Geom::Rect bounding_area,
void
Grid::effect (Inkscape::Extension::Effect *module, Inkscape::UI::View::View *document, Inkscape::Extension::Implementation::ImplementationDocumentCache * /*docCache*/)
{
- Inkscape::Selection * selection = ((SPDesktop *)document)->selection;
+ SPDesktop *desktop = ((SPDesktop *)document);
+ Inkscape::Selection * selection = NULL;
+ if (desktop) {
+ selection = desktop->getSelection();
+ if (selection && !selection->params.empty()) {
+ selection->restoreBackup();
+ if (!desktop->on_live_extension) {
+ selection->emptyBackup();
+ }
+ }
+ }
Geom::Rect bounding_area = Geom::Rect(Geom::Point(0,0), Geom::Point(100,100));
if (selection->isEmpty()) {