Code

Merge and cleanup of GSoC C++-ification project.
[inkscape.git] / src / extension / effect.cpp
index 79bd96a7edf70a7515d6817b0059d09c9bf17dc0..51aa42da67fe8699770247393ed1931f235e7572 100644 (file)
@@ -1,6 +1,7 @@
 /*
  * Authors:
  *   Ted Gould <ted@gould.cx>
+ *   Abhishek Sharma
  *
  * Copyright (C) 2002-2007 Authors
  *
@@ -295,6 +296,19 @@ Effect::effect (Inkscape::UI::View::View * doc)
 void
 Effect::set_last_effect (Effect * in_effect)
 {
+    gchar const * verb_id = in_effect->get_verb()->get_id();
+    gchar const * help_id_prefix = "org.inkscape.help.";
+
+    // We don't want these "effects" to register as the last effect,
+    // this wouldn't be helpful to the user who selects a real effect,
+    // then goes to the help file (implemented as an effect), then goes
+    // back to the effect, only to see it written over by the help file
+    // selection.
+
+    // This snippet should fix this bug:
+    // https://bugs.launchpad.net/inkscape/+bug/600671
+    if (strncmp(verb_id, help_id_prefix, strlen(help_id_prefix)) == 0) return;
+
     if (in_effect == NULL) {
         Inkscape::Verb::get(SP_VERB_EFFECT_LAST)->sensitive(NULL, false);
         Inkscape::Verb::get(SP_VERB_EFFECT_LAST_PREF)->sensitive(NULL, false);