summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDiederik van Lierop <mailat-signdiedenrezidotnl>2010-02-14 20:51:07 +0000
committerDiederik van Lierop <mailat-signdiedenrezidotnl>2010-02-14 20:51:07 +0000
commit676e842cd5cf47024341afa60c4740e1b63bb2a3 (patch)
tree1f480ab2766bba5c4447d3ca0a9621c1bfa903d6 /src
parentImplement snapping of gradient stops (diff)
downloadinkscape-676e842cd5cf47024341afa60c4740e1b63bb2a3.tar.gz
inkscape-676e842cd5cf47024341afa60c4740e1b63bb2a3.zip
Gradient editor: don't show pre-snap indicator when hovering above the knot of a gradient stop
(bzr r9091)
Diffstat (limited to 'src')
-rw-r--r--src/gradient-context.cpp2
-rw-r--r--src/gradient-drag.cpp16
-rw-r--r--src/gradient-drag.h2
3 files changed, 19 insertions, 1 deletions
diff --git a/src/gradient-context.cpp b/src/gradient-context.cpp
index 8bdfe2f7c..baf6ac05b 100644
--- a/src/gradient-context.cpp
+++ b/src/gradient-context.cpp
@@ -593,7 +593,7 @@ sp_gradient_context_root_handler(SPEventContext *event_context, GdkEvent *event)
ret = TRUE;
} else {
- if (!sp_event_context_knot_mouseover(event_context)) {
+ if (!drag->mouseOver()) {
SnapManager &m = desktop->namedview->snap_manager;
m.setup(desktop);
diff --git a/src/gradient-drag.cpp b/src/gradient-drag.cpp
index 0b9068b37..246573e3f 100644
--- a/src/gradient-drag.cpp
+++ b/src/gradient-drag.cpp
@@ -1662,6 +1662,22 @@ GrDrag::updateDraggers ()
}
}
+
+/**
+ * \brief Returns true if at least one of the draggers' knots has the mouse hovering above it
+ */
+
+bool
+GrDrag::mouseOver()
+{
+ for (GList const* i = this->draggers; i != NULL; i = i->next) {
+ GrDragger *d = (GrDragger *) i->data;
+ if (d->knot && (d->knot->flags & SP_KNOT_MOUSEOVER)) {
+ return true;
+ }
+ }
+ return false;
+}
/**
Regenerates the lines list from the current selection; is called on each move of a dragger, so that
lines are always in sync with the actual gradient
diff --git a/src/gradient-drag.h b/src/gradient-drag.h
index a53acffe6..460d1396e 100644
--- a/src/gradient-drag.h
+++ b/src/gradient-drag.h
@@ -154,6 +154,8 @@ public: // FIXME: make more of this private!
void updateLines ();
void updateLevels ();
+ bool mouseOver();
+
void selected_move_nowrite (double x, double y, bool scale_radial);
void selected_move (double x, double y, bool write_repr = true, bool scale_radial = false);
void selected_move_screen (double x, double y);