summaryrefslogtreecommitdiffstats
path: root/src/display/snap-indicator.cpp
diff options
context:
space:
mode:
authorBryce Harrington <bryce@bryceharrington.org>2014-01-06 20:50:49 +0000
committerbryce <bryce@canonical.com>2014-01-06 20:50:49 +0000
commit2094267f37685e9d49eccf216d3c3b4c2674b6cb (patch)
treeb8be88cf40616ab12b6a5142f4a875a4a5b799a8 /src/display/snap-indicator.cpp
parentUniform colons usage in UI in front of edit boxes (diff)
downloadinkscape-2094267f37685e9d49eccf216d3c3b4c2674b6cb.tar.gz
inkscape-2094267f37685e9d49eccf216d3c3b4c2674b6cb.zip
Only display snapping tooltip if source / target are defined (LP #1255764)
(bzr r12883)
Diffstat (limited to 'src/display/snap-indicator.cpp')
-rw-r--r--src/display/snap-indicator.cpp48
1 files changed, 25 insertions, 23 deletions
diff --git a/src/display/snap-indicator.cpp b/src/display/snap-indicator.cpp
index 1dd3022c7..f21b6c81c 100644
--- a/src/display/snap-indicator.cpp
+++ b/src/display/snap-indicator.cpp
@@ -262,36 +262,38 @@ SnapIndicator::set_new_snaptarget(Inkscape::SnappedPoint const &p, bool pre_snap
// Display the tooltip, which reveals the type of snap source and the type of snap target
gchar *tooltip_str = NULL;
- if (p.getSource() != SNAPSOURCE_GRID_PITCH) {
+ if (p.getSource() != SNAPSOURCE_GRID_PITCH && p.getTarget() != SNAPSOURCE_UNDEFINED) {
tooltip_str = g_strconcat(source_name, _(" to "), target_name, NULL);
- } else {
+ } else if (p.getSource() != SNAPSOURCE_UNDEFINED) {
tooltip_str = g_strdup(source_name);
}
double fontsize = prefs->getInt("/tools/measure/fontsize");
- Geom::Point tooltip_pos = p.getPoint();
- if (tools_isactive(_desktop, TOOLS_MEASURE)) {
- // Make sure that the snap tooltips do not overlap the ones from the measure tool
- tooltip_pos += _desktop->w2d(Geom::Point(0, -3*fontsize));
- } else {
- tooltip_pos += _desktop->w2d(Geom::Point(0, -2*fontsize));
+ if (tooltip_str) {
+ Geom::Point tooltip_pos = p.getPoint();
+ if (tools_isactive(_desktop, TOOLS_MEASURE)) {
+ // Make sure that the snap tooltips do not overlap the ones from the measure tool
+ tooltip_pos += _desktop->w2d(Geom::Point(0, -3*fontsize));
+ } else {
+ tooltip_pos += _desktop->w2d(Geom::Point(0, -2*fontsize));
+ }
+
+ SPCanvasItem *canvas_tooltip = sp_canvastext_new(sp_desktop_tempgroup(_desktop), _desktop, tooltip_pos, tooltip_str);
+ sp_canvastext_set_fontsize(SP_CANVASTEXT(canvas_tooltip), fontsize);
+ SP_CANVASTEXT(canvas_tooltip)->rgba = 0xffffffff;
+ SP_CANVASTEXT(canvas_tooltip)->outline = false;
+ SP_CANVASTEXT(canvas_tooltip)->background = true;
+ if (pre_snap) {
+ SP_CANVASTEXT(canvas_tooltip)->rgba_background = 0x33337f40;
+ } else {
+ SP_CANVASTEXT(canvas_tooltip)->rgba_background = 0x33337f7f;
+ }
+ SP_CANVASTEXT(canvas_tooltip)->anchor_position = TEXT_ANCHOR_CENTER;
+ g_free(tooltip_str);
+
+ _snaptarget_tooltip = _desktop->add_temporary_canvasitem(canvas_tooltip, timeout_val);
}
- SPCanvasItem *canvas_tooltip = sp_canvastext_new(sp_desktop_tempgroup(_desktop), _desktop, tooltip_pos, tooltip_str);
- sp_canvastext_set_fontsize(SP_CANVASTEXT(canvas_tooltip), fontsize);
- SP_CANVASTEXT(canvas_tooltip)->rgba = 0xffffffff;
- SP_CANVASTEXT(canvas_tooltip)->outline = false;
- SP_CANVASTEXT(canvas_tooltip)->background = true;
- if (pre_snap) {
- SP_CANVASTEXT(canvas_tooltip)->rgba_background = 0x33337f40;
- } else {
- SP_CANVASTEXT(canvas_tooltip)->rgba_background = 0x33337f7f;
- }
- SP_CANVASTEXT(canvas_tooltip)->anchor_position = TEXT_ANCHOR_CENTER;
- g_free(tooltip_str);
-
- _snaptarget_tooltip = _desktop->add_temporary_canvasitem(canvas_tooltip, timeout_val);
-
// Display the bounding box, if we snapped to one
Geom::OptRect const bbox = p.getTargetBBox();
if (bbox) {