Add search_recall_list=only to search the recall list, but not the map
This is intended as a more clear way of doing 'x,y=recall,recall' and omitting search_recall_list. Note that search_recall_list=no with x,y=recall,recall produces a useless [role] which only runs the [else] block(s).
Add reassign attribute
Optional attribute, default 'yes'. If 'no' then do not re-assign the role if a unit already has the role. If 'no' and no unit has the role, the role is still assigned.
Refactor auto_recall as a sub-tag
Instead of a yes|no attribute, if there is an [auto_recall] sub-tag then recall the unit from the recall list. This acts as a [recall] tag without any StandardUnitFilterto which we add id=$unit.id and issue the recall.
This reverts commit b87d8e5ede060e10b5927b8721933c05d1295c0d.
This didn't completeley fix the issue, also this casues merging conflicts
with some other commits so i'm reverting this.
done by using this regex replace:
'(std::bind[\ \t\n\r]*\([\ \t\n\r]*[^\,]*[\ \t\n\r]*,[\
\t\n\r]*)_([1-9])' to '$1std::placeholders::_$2' (msvc syntax)
Using boost::placeholder with std::bind seeed to cause compilation
erros with some libc++ version used by dafault on some OSX versions.
There seems to possibly be an internal issue with the slider (and more generally, the
scrollbar implementation form which it inherits) where is min/maximum_positioner_length
equal an even number, sliders with an even number of options will reach max value.
Setting it to what, in this case is 1 below the actual width of the slider image (15)
means both even and odd-numbered sliders will reach max value, however the edge is cut off.
Attempting to set the right_offset to 1 and using the above off value for the positioned
width means only sliders with an odd number of options reach max value.
The magic numbers in this commit seem to give the widget enough space to reach the end of
the slider and max values regardless of the number of options, but the internal widget dimension
calculation should perhaps be investigated in the future.
This fixes a crash that would be caused by memory incorrectly being freed
when removed from a list. Relying on splice stops that from happening.
This also fixes an exit condition when deleting handlers as depth could
sometimes not be decremented.
Finally, checks are made to made sure that an sdl_handler is either
exclusively in the global context or a different context, ensuring
that they cannot be in both.