- When user clicks outside of dropped listbox, original selection must be
restored.
- ComboLBox has caret_on = FALSE on creation, that's why combobox sends
LB_CARETON message before dropping listbox down (but only for
CBS_DROPDOWNLIST - I don't now why).
Sheri Steeves
Haithem Hmida
- Height of the listbox should be adjust when LBS_OWNERDRAWFIXED is set
and not if LBS_OWNERDRAWVARIABLE is set, previously it was not adjusting
the size in both cases.
- When the caret index change, items repainting need tp be in this
order
a) Paint old caret item without the focus
b) Paint old caret item without the selection
c) Paint new caret item with the selection
d) Paint new caret item with the focus.
- When repainting the listbox, we should paint all items regarding if
they are slected or not and then paint after the focus item. So focus
item will end out being painted twice. (That's what Windows does).
Static controls weren't receiving WM_LBUTTONDBLCLK messages because the
Static window class was registered without the CS_DBLCLKS style (which it
has in Windows).
- Edit text must be selected only if CB is in focus.
- If CB has edit control we have to call CBUpdateEdit to update its
contents. Invalidating textRect will not force updating of child
edit control, obviously.
- We have to protect ourselves from changing selection in listbox when
we receive listbox notification. So LBN_SELCHANGE -> CBUpdateEdit ->
EN_CHANGE will not reselect item in the lisbox.
When you click on an icon to open a combo box, you would expect it to
be enabled so you can choose something in it. In Wine this was not
guaranteed since your default flags could get lost in the process-heap
of the application.
- Added handling of WM_MOUSEACTIVATE message
- Added in_focus field to internal listbox's structure. This flag is set on
receiving WM_SETFOCUS message and is reseted on WM_KILLFOCUS. All calls to
GetFocus function were replaced with checks of this flag.
- In LISTBOX_HandleLButtonDown: focus is set only if 'in_focus' flag is
clear
appeared in the window.
Sheri Steeves <sheri@macadamian.com>
In LISTBOX_UpdateScroll(), if the listbox did not have the WS_SCROLL
style it would just return. This left the horizontal scroll bar
uninitialized and it was appearing at the bottom of the listbox when
it did not have to.
Serge Ivanov <sergei@corel.com>
LISTBOX_SetColumnWidth adds extra 2 pixels to the passed column width
(it says it is for column margins). Obviously it is wrong, because
margins must be internal.