Soliton ran into the problem that when using his touchpad to double
click on a campaign it might directly select the difficulty and dismiss
the next dialog. When using a mouse the problem didn't occur.
The output of events for the mouse were:
Push DOUBLE_CLICK_EVENT.
Process DOUBLE_CLICK_EVENT.
Window dtor.
The output of events for the touchpad were:
Push DOUBLE_CLICK_EVENT.
Window dtor.
Process DOUBLE_CLICK_EVENT.
This explains why the events are send to the next dialog. It doesn't
explain why it happens, but that might be the touchpad driver or OS.
The problem is solved by removing the extra events after closing the
dialog. Avoiding the events to be generated is tricky since a gui2
dialog can open a gui1 one, when that happens double clicks need to be
enabled temporary and then again disabled when that dialog closes.
It fixes the following issue:
- press the left mouse button down on button 1
- move to button 2
- right click button 2
- release the left mouse button
In that case button 2 received a mouse click and button 1 never received
that the mouse left it.
Since the tooltips are currently only used for the multiplayer menu the
have been impemented so they work there.
Post 1.8 it will be implemented better but it might be that the tooltips
then become separate floating windows. Since that's not sure added the
minimal version for 1.8 and look further after that version has been
shipped.
This makes sure the dialog below knows the proper location. It fixes the
following issue:
- multiplayer
- connect to server
- show list
- move mouse out of dialog
- press escape
Before this commit the show list button would still be highlighted as if
the mouse was still above it.
This actually only show the little arrow (which now indicates how it
is sorted) because there is old ugly code already directly sorting the
recall list itself, (but only when opening the dialog, which is
probably bad for MP/OoS)
* moved the initial shroud removal to the prestart event so it isn't visible
* removed useless x,y keys in remove/place_shroud
* place_shroud for side 1 and 2 so it actually has an effect (allies
share maps)