anchor.diff:        }
         left = el.left.toInt();
   
  -      bool up = false;
  -
         if (dropdownH + el.top + el.height < scrHeight) {
           // vejde se dolu
  -      } else {
  -        up = true;
  -      }
  -
  -      if (up) {
  -        // open up
  -        top = el.top.toInt() - dropdownH;
  +        top = el.top.toInt() + el.height.toInt();
   
         } else {
  -        // open down
  -        top = el.top.toInt() + el.height.toInt();
  +        if (el.top - dropdownH > 0) {
  +          // vejde se nahoru
  +          top = el.top.toInt() - dropdownH;
   
  +        } else {
  +          top = (scrHeight - dropdownH)~/2;
  +        }
         }
       }
     }
  
positive.code:   );
  }
  
  class DropdownTracker {
  
    Element _element;
  
negative.code:     this._dropdown = dropdown;
      this._onHide = onHide;
      Stream<Event> mergedRelevant = StreamGroup.merge([window.onMouseWheel, window.onResize, window.onScroll]);
      FnxStreamDebouncer db = new FnxStreamDebouncer(new Duration(milliseconds: 10));
      subscription = mergedRelevant.transform(db).listen(updatePosition);
    }
  
  