Issue 124008 - listbox entry's are selected automatically on mouse over instead of mouse click
Summary: listbox entry's are selected automatically on mouse over instead of mouse click
Alias: None
Product: Calc
Classification: Application
Component: editing (show other issues)
Version: 4.1.0-dev
Hardware: PC Windows 7
: P3 Major (vote)
Target Milestone: 4.1.0
Assignee: AOO issues mailing list
QA Contact:
Keywords: regression
Depends on:
Reported: 2014-01-10 17:57 UTC by Oliver Brinzing
Modified: 2017-05-20 10:35 UTC (History)
6 users (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---

listbox demo file (8.38 KB, application/vnd.oasis.opendocument.spreadsheet)
2014-01-10 17:57 UTC, Oliver Brinzing
no flags Details

Note You need to log in before you can comment on or make changes to this issue.
Description Oliver Brinzing 2014-01-10 17:57:05 UTC
Created attachment 82253 [details]
listbox demo file

steps to reprodice:
- open attached spreadsheet document and try to select a value

not repoducible with aoo401 -> regression
Comment 1 Oliver Brinzing 2014-01-18 10:12:26 UTC
reproduced on win7 64bit oo 4.1.0dev Rev. 1559272
Comment 2 eberlein 2014-01-21 08:27:25 UTC
can confirm with Rev. 1556251 (WindowsXP SP3)
Comment 3 Armin Le Grand 2014-01-21 15:29:15 UTC
Hovering with the mouse over the selected, dropped-down listbox changes the entry in calc already, producing real changes and undo actions. Indeed in 401 this only happened on selecting an entry with the mouse by clicking. On the first view this looks easier as interaction, as if someone tried to make this nicer for the user, but there are those UNDOs created, thus probably an error.
Comment 4 Andre 2014-01-21 15:54:40 UTC
Moving the mouse over the drop down control of the list box leads to selection changes in that control.  These are notified as events and forwarded via VCLXListBox::ProcessWindowEvent(), UnoControlModel::setFastPropertyValue(), OBoundControlModel::onValuePropertyChange(), OCellValueBinding::setValue().
Maybe anywhere in this chain the notification of events has changed to treat changes in the drop down the same as changes in the text box.
Comment 5 Armin Le Grand 2014-01-21 16:01:01 UTC
Seems to be triggered by the new ListBox::ImplListItemSelectHdl added with r1541847 by steve_y, that is the integration of the IAccessible2 branch. That new handler is called from ImplListBoxWindow::MouseMove newly with IAccessible2.
Tis happens for all ListBoxes now, just checked quickly with adding some text to the example in a cell, select it and use the FontStyle Listbox, but in that case does not already change while hovering.
Looks as if the FormControl needs to be more careful to detect changes with the new handler added, taking a look.
Comment 6 Armin Le Grand 2014-01-21 16:04:04 UTC
@Andre: Yes, it has changed, IAccessibility2 has added a new handler (see comment 5), probably to read the entry hovered over to the user. If any user of that control already reacts on any change (I guess there is a possibility to check the kind of change, hopefully) it may now behave as seen. Therefore this is a potentially dangerous change. I will now check for the FormControl which is used here...
Comment 7 Armin Le Grand 2014-01-21 16:37:01 UTC
I would say that it is not okay to use VCLEVENT_LISTBOX_SELECT in the new IA2 handlers to notify mouse hoovering; I suggest that something new like VCLEVENT_LISTBOX_PRESELECT or VCLEVENT_LISTBOX_HOVVERCHANGE should be used and the IA2 usages should react on that new flag. Everything else is dangerous and may change the ListBox (or ComboBox, same change there) behaviour in the UI...
Comment 8 Andre 2014-01-22 08:10:59 UTC
May I suggest something like VCL_DROPDOWN_SELECT?  The mouse hover leads to a selection change, just not of the list box control itself.
Comment 9 Steve Yin 2014-01-22 14:58:39 UTC
Confirmed this issue is led by feature and exists in Symphony. The previous testing work is not sufficient.

@Armin and Andre: Thanks for both of your quick investigations and suggestions. I will take care of this issue.
Comment 10 Armin Le Grand 2014-01-22 20:40:29 UTC
Comment 11 Steve Yin 2014-01-28 09:52:31 UTC
Use VCLEVENT_DROPDOWN_SELECT to handle accessible focus event.
Comment 12 SVN Robot 2014-01-28 09:55:09 UTC
"steve_y" committed SVN revision 1562022 into trunk:
Bug 124008 - listbox entry's are selected automatically on mouse over instead...
Comment 13 Steve Yin 2014-01-28 09:56:00 UTC
UT passed.