anchor.diff:      FGarbage : TObjectList;
       FDefaultItemIndex : integer;
       FValueType : TmComboCheckLookupFilterValueType;
  +    FWidthOptimized : boolean;
       procedure SetDefaultItemIndex(AValue: integer);
  +    procedure OnDropDown(Sender : TObject);
  +    procedure CustomDrawItem (Control: TWinControl; Index: Integer;ARect: TRect; State: StdCtrls.TOwnerDrawState);
     public
       constructor Create(TheOwner: TComponent); override;
       destructor Destroy; override;
  
positive.code:     FCombobox.ItemIndex:= FDefaultItemIndex;
  end;
  
  constructor TmComboFilterConditionPanel.Create(TheOwner: TComponent);
  begin
    inherited Create(TheOwner);
    FCombobox := TComboBox.Create(Self);
    FComboBox.Parent := Self;
    FComboBox.Align:= alBottom;
    FComboBox.Style:= csDropDownList;
    FComboBox.DropDownCount:= 20;
    FLabel := Self.CreateStandardLabel;
    FGarbage := TObjectList.Create(true);
    FDefaultItemIndex:= -1;
    CreateStandardFilterMenu(FLabel, false);
    FValueType:= cfString;
  end;
  
  destructor TmComboFilterConditionPanel.Destroy;
  
negative.code:   // get the max needed with of the items in dropdown state
    for idx := 0 to -1 + FCombobox.Items.Count do
    begin
      itemWidth := GetTextWidth(FCombobox.Items[idx], FCombobox.Font); // FCombobox.Canvas.TextWidth(FCombobox.Items[idx]);
      Inc(itemWidth, 2 * HORIZONTAL_PADDING);
      itemWidth := ScaleForMagnification(itemWidth, true);
      if (itemWidth > itemsFullWidth) then itemsFullWidth := itemWidth;
  