From 2e88f44ad2f4748b4f8460568932f3638ee6068f Mon Sep 17 00:00:00 2001 From: Keith OHara Date: Sun, 16 Sep 2012 16:26:01 -0700 Subject: [PATCH] lookup.cc: warn about, but do not draw, empty boxes --- lily/lookup.cc | 18 ++++++++++++------ scm/fret-diagrams.scm | 5 +++-- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/lily/lookup.cc b/lily/lookup.cc index f37d98c0e3..e903d5a9a4 100644 --- a/lily/lookup.cc +++ b/lily/lookup.cc @@ -27,6 +27,7 @@ using namespace std; #include "line-interface.hh" #include "warn.hh" +#include "international.hh" #include "dimensions.hh" #include "bezier.hh" #include "file-path.hh" @@ -169,13 +170,18 @@ Lookup::filled_box (Box b) Stencil Lookup::round_filled_box (Box b, Real blotdiameter) { - if (b.x ().length () < blotdiameter) - blotdiameter = b.x ().length (); - if (b.y ().length () < blotdiameter) - blotdiameter = b.y ().length (); + Real width = b.x ().delta (); + blotdiameter = min (blotdiameter, width); + Real height = b.y ().delta (); + blotdiameter = min (blotdiameter, height); - if (isinf (b.x ().delta ()) || isinf (b.y ().delta ())) - return Stencil (b, SCM_EOL); + if (blotdiameter < 0.0) + { + if (!isinf (blotdiameter)) + warning (_f ("Not drawing a box with negative dimension, %.2f by %.2f.", + width, height)); + return Stencil (b, SCM_EOL); + } SCM at = (scm_list_n (ly_symbol2scm ("round-filled-box"), scm_from_double (-b[X_AXIS][LEFT]), diff --git a/scm/fret-diagrams.scm b/scm/fret-diagrams.scm index a6645dc762..83c4ee6b7a 100644 --- a/scm/fret-diagrams.scm +++ b/scm/fret-diagrams.scm @@ -646,8 +646,9 @@ fret-diagram overall parameters." (stencil-coordinates end-fret-coordinate end-string-coordinate))) (ly:round-filled-box - (cons (car lower-left) (car upper-right)) - (cons (cdr lower-left) (cdr upper-right)) + ;; Put limits in order, or else the intervals are considered empty + (ordered-cons (car lower-left) (car upper-right)) + (ordered-cons (cdr lower-left) (cdr upper-right)) sth))) (define (draw-xo xo-list) -- 2.39.5