Fix T59170: Box select ignores modifiers-keys once tool option is set

- Key-map items properties now override tool-options
  so modifier keys can have different behavior to the default action.

- Box & circle select now have `wait_for_input` properties
  instead of detecting this based on selection options being set or not.
  This relied on the key-map setting properties which may need to be
  initialize from the tool settings.
This commit is contained in:
2018-12-12 14:26:43 +11:00
parent 49490e5cfb
commit 4ae68d6825
4 changed files with 42 additions and 38 deletions

View File

@@ -922,7 +922,14 @@ void WM_toolsystem_ref_properties_init_for_keymap(
if (tref->properties != NULL) {
IDProperty *prop = IDP_GetPropertyFromGroup(tref->properties, ot->idname);
if (prop) {
IDP_MergeGroup(dst_ptr->data, prop, true);
/* Important key-map items properties don't get overwritten by the tools.
* - When a key-map item doesn't set a property, the tool-systems is used.
* - When it does, it overrides the tool-system.
*
* This way the default action can be to follow the top-bar tool-settings &
* modifier keys can be used to perform different actions that aren't clobbered here.
*/
IDP_MergeGroup(dst_ptr->data, prop, false);
}
}
}