Dome details missed?
I have tested your situation, Linux-Amd64, GTK2, Lazarus 3.3., LCL 2.1.0.
I can't see what you guys say.
In csDropDownList on[Change/Selected] just fires when selecting new item!
Its seems a platform/widgetset problem, not LCL/Lazarus ones!
There is the log of combobox (csDropDown) activity:
And for note, There are a pair of ComboBox1EditingDone, one of them raise on opening(DropDown) and the other one fires for closing comobox.
ComboBox1EditingDone, ItemIndex: -1 //Open by click
ComboBox1EditingDone, ItemIndex: -1 //Close, Click inside combobox
ComboBox1EditingDone, ItemIndex: -1 //Open Alt+Down
ComboBox1EditingDone, ItemIndex: -1 //Close by Esc
ComboBox1EditingDone, ItemIndex: -1 //Open by click
ComboBox1Change, ItemIndex: 0 //Selecting first Item On The List
ComboBox1Select, ItemIndex: 0 //Selecting first Item On The List
ComboBox1EditingDone, ItemIndex: 0 //Close, Selecting first Item On The List
ComboBox1EditingDone, ItemIndex: 0 //Open
ComboBox1EditingDone, ItemIndex: 0 //Close, Click selected item again(no onChange/onSelect fired)
ComboBox1EditingDone, ItemIndex: 0 //Opne
ComboBox1EditingDone, ItemIndex: 0 //Pick Selected item with arrow keys and hit Enter (no onChange/onSelect fired)
ComboBox1EditingDone, ItemIndex: 0 //Open
ComboBox1Change, ItemIndex: 1 //Select second Item
ComboBox1Select, ItemIndex: 1 //Select second Item
ComboBox1EditingDone, ItemIndex: 1 //Close Select second Item
ComboBox1Change, ItemIndex: -1 //Start typing(Something not on the list, No what you type, even exist item, ItemIndex will be -1)
ComboBox1Change, ItemIndex: -1 //Fires on every key(char),insertin or removing(BackSpc/Del)
ComboBox1Change, ItemIndex: -1
ComboBox1Change, ItemIndex: -1
ComboBox1Change, ItemIndex: -1
ComboBox1Change, ItemIndex: -1
ComboBox1EditingDone, ItemIndex: -1 //Lost focus
In my case (csDropDown) onChange fires on changing the selected item or typing new value! and onSelect fires for a new select item(something except last select one)