anchor.diff:                                   (< (/ (- now last-click-time) internal-time-units-per-second) *double-click-delay*))
                          (setf last-click-time now))))
                    (end-it ()
  -                   (unless all-done
  -                     (setf all-done t)
  -                     (throw 'popup-list-box-done nil))))
  +                   (throw 'popup-list-box-done nil)))
             
             (catch 'popup-list-box-done
               (setf (slot-value list-pane 'value-changed-callback)
                     (lambda (pane value)
                       (declare (ignore pane value))
  -                    (when ready-to-exit (end-it))))
  -            
  +                    (when (and final-change
  +                               (not consume-and-exit))
  +                      (end-it))))
  +
               (tracking-pointer (list-pane :multiple-window t :highlight nil)
                 (:pointer-motion (&key event window x y)
                    (cond (inner-grab (handle-event inner-grab (rewrite-event-for-grab inner-grab event)))
  
positive.code: 
  (defmethod initialize-instance :after ((gadget meta-list-pane) &rest rest)
    (declare (ignorable rest))
    (when (and (not (list-pane-exclusive-p gadget))
               (not (listp (gadget-value gadget))))
      (error "A :nonexclusive list-pane cannot be initialized with a value which is not a list."))
  
negative.code:                             (multiple-value-bind (item current-index)
                                  (generic-list-pane-item-from-x-y list-pane x y)
                                (declare (ignore item))
                                (let ((double-clicked (and (compute-double-clicked)
                                                           (= (or last-item-index -1)
                                                              (or current-index -2))))
                                      (exclusive (list-pane-exclusive-p parent)))
                                  (setf retain-value t
                                        final-change   (or exclusive double-clicked)
                                        last-item-index current-index
                                        consume-and-exit (or exclusive
                                                             (and (not exclusive)
                                                                  double-clicked)))
                                  (unless (and (not exclusive)
                                               double-clicked)
                                      (handle-event list-pane event)))))
                             ((in-menu (event-sheet event) x  y)
                              (handle-event (event-sheet event) event)
                              (setf inner-grab (event-sheet event)))
                             (t (setf consume-and-exit t)))))
  
                (:pointer-button-release (&key event x y)
                  (when consume-and-exit (end-it))
                  (cond (inner-grab
                         (handle-event inner-grab event)
                         (setf inner-grab nil))
                        ((in-list (event-sheet event) x y)
                         (when (list-pane-exclusive-p parent)
                           (setf retain-value t
                                 final-change t)
                           (handle-event list-pane event)))
                        ((in-menu (event-sheet event) x y)
                         (handle-event (event-sheet event) event)))))))
  