diff --git a/quad/quadwriter/draw.rkt b/quad/quadwriter/draw.rkt index e775f4cb..25305f33 100644 --- a/quad/quadwriter/draw.rkt +++ b/quad/quadwriter/draw.rkt @@ -40,11 +40,13 @@ [elems (quad-elems q)] [tag (quad-tag q)] [attrs (quad-attrs q)] - [size (match (quad-tag q) - [(== 'text eq?) (make-size-promise-for-string q (quad-ref q :string ""))] - [(== 'line eq?) (pt (abs (- (quad-ref q :x1) (quad-ref q :x2))) - (abs (- (quad-ref q :y1) (quad-ref q :y2))))] - [_ (pt (quad-ref q :width 0) (quad-ref q :height 0))])] + [size (if (quad-ref q :anchor-parent) + (pt 0 0) + (match (quad-tag q) + [(== 'text eq?) (make-size-promise-for-string q (quad-ref q :string ""))] + [(== 'line eq?) (pt (abs (- (quad-ref q :x1) (quad-ref q :x2))) + (abs (- (quad-ref q :y1) (quad-ref q :y2))))] + [_ (pt (quad-ref q :width 0) (quad-ref q :height 0))]))] [draw-end (λ (q doc) (when (draw-debug-draw?) (draw-debug q doc "red" "red")))] diff --git a/quad/quadwriter/query.rkt b/quad/quadwriter/query.rkt index 82362034..64e4d030 100644 --- a/quad/quadwriter/query.rkt +++ b/quad/quadwriter/query.rkt @@ -69,10 +69,12 @@ (find (vector-memq starting-q vec) 0 2)] [(== 'next eq?) ; search 1 ahead, but if starting-q is also pred, search 2 ahead (find (vector-memq starting-q vec) maxidx (if (pred starting-q) 2 1))] - [(? negative? count) ; search backward from end - (find maxidx vidx (abs count))] - [(? positive? count) ; seach forward - (find vidx maxidx count)] + [(? number? count) + (cond + [(negative? count) ; search backward from end + (find maxidx vidx (abs count))] + [else ; seach forward + (find vidx maxidx count)])] [_ #false]))) (define next-maxidx (cond