anchor.diff:    if not IsClickHandled then
     begin
       inherited DoClick(X, Y, Shift, Button);
  -    if Assigned(fOnChange) then
  +    if Assigned(fOnChange) and not fOnChangeInvoked then
         fOnChange(Self);
     end;
   end;
   
   
  -procedure TKMColumnBox.UpdateItemIndex(Shift: TShiftState);
  +procedure TKMColumnBox.UpdateItemIndex(Shift: TShiftState; var aOnChangeInvoked: Boolean);
   var NewIndex: Integer;
   begin
  +  aOnChangeInvoked := False;
     if not (ssLeft in Shift) or (fMouseOverRow = -1) then
       Exit;
   
  
positive.code: 
      //Send Click events
      DoClick(X, Y, Shift, Button);
    end;
  end;
  
  
  procedure TKMColumnBox.MouseMove(X,Y: Integer; Shift: TShiftState);
  begin
    inherited;
    UpdateMouseOverPosition(X, Y);
    UpdateItemIndex(Shift);
  end;
  
  
  
negative.code:     ItemIndex := NewIndex;
      if not KMSamePoint(fMouseOverCell, KMPOINT_INVALID_TILE) and Columns[fMouseOverCell.X].TriggerOnChange
        and Assigned(fOnChange) then
      begin
        fOnChange(Self);
        aOnChangeInvoked := True;
      end;
    end;
  end;
  
  