Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2021-09-27 11:06:17 +0300
committerCampbell Barton <ideasman42@gmail.com>2021-09-27 14:04:34 +0300
commit32ffb858d6da920926fcd37a6720d2a7b408e04b (patch)
tree2dae33f32defb3d6e2cd84e01505f60556c9543e
parentc618075541ded922ead69770ed4acf49106b0ead (diff)
Keymap: resolve conflict with use_alt_cursor/Ctrl-LMB to add/extrude
While the option allows tools be be activated on press instead of tweak, this meant box-select was catching Ctrl-LMB which is also used for add/extrude in edit mode. Resolve this by always using tweak for selection tools, only supporting activation on press for other tools. Note that this doesn't impact the default configuration.
-rw-r--r--release/scripts/presets/keyconfig/keymap_data/blender_default.py48
1 files changed, 27 insertions, 21 deletions
diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
index 56ff776ea48..41b5d6f7998 100644
--- a/release/scripts/presets/keyconfig/keymap_data/blender_default.py
+++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
@@ -76,7 +76,14 @@ class Params:
"select_mouse_value_fallback",
# Shorthand for: `('CLICK_DRAG' if params.use_pie_click_drag else 'PRESS')`
"pie_value",
+ # Shorthand for: `{"type": params.tool_tweak, "value": 'ANY'}`.
+ "tool_tweak_event",
# Shorthand for: `{"type": params.tool_maybe_tweak, "value": params.tool_maybe_tweak_value}`.
+ #
+ # NOTE: This is typically used for active tool key-map items however it should never
+ # be used for selection tools (the default box-select tool for example).
+ # Since this means with RMB select enabled in edit-mode for e.g.
+ # `Ctrl-LMB` would be caught by box-select instead of add/extrude.
"tool_maybe_tweak_event",
)
@@ -187,6 +194,7 @@ class Params:
self.use_fallback_tool_rmb = self.use_fallback_tool if self.select_mouse == 'RIGHT' else False
self.select_mouse_value_fallback = 'CLICK' if self.use_fallback_tool_rmb else self.select_mouse_value
self.pie_value = 'CLICK_DRAG' if use_pie_click_drag else 'PRESS'
+ self.tool_tweak_event = {"type": self.tool_tweak, "value": 'ANY'}
self.tool_maybe_tweak_event = {"type": self.tool_maybe_tweak, "value": self.tool_maybe_tweak_value}
@@ -6128,12 +6136,9 @@ def km_image_editor_tool_uv_cursor(params):
"Image Editor Tool: Uv, Cursor",
{"space_type": 'IMAGE_EDITOR', "region_type": 'WINDOW'},
{"items": [
- ("uv.cursor_set",
- {"type": params.tool_mouse, "value": 'PRESS'},
- None),
+ ("uv.cursor_set", {"type": params.tool_mouse, "value": 'PRESS'}, None),
# Don't use `tool_maybe_tweak_event` since it conflicts with `PRESS` that places the cursor.
- ("transform.translate",
- {"type": params.tool_tweak, "value": 'ANY'},
+ ("transform.translate", params.tool_tweak_event,
{"properties": [("release_confirm", True), ("cursor_transform", True)]}),
]},
)
@@ -6158,7 +6163,8 @@ def km_image_editor_tool_uv_select_box(params, *, fallback):
{"items": [
*([] if (fallback and not params.use_fallback_tool) else _template_items_tool_select_actions_simple(
"uv.select_box",
- **({"type": params.select_tweak, "value": 'ANY'} if fallback else params.tool_maybe_tweak_event))),
+ # Don't use `tool_maybe_tweak_event`, see comment for this slot.
+ **({"type": params.select_tweak, "value": 'ANY'} if fallback else params.tool_tweak_event))),
*_template_uv_select_for_fallback(params, fallback),
]},
)
@@ -6187,7 +6193,7 @@ def km_image_editor_tool_uv_select_lasso(params, *, fallback):
{"items": [
*([] if (fallback and not params.use_fallback_tool) else _template_items_tool_select_actions_simple(
"uv.select_lasso",
- **({"type": params.select_tweak, "value": 'ANY'} if fallback else params.tool_maybe_tweak_event))),
+ **({"type": params.select_tweak, "value": 'ANY'} if fallback else params.tool_tweak_event))),
*_template_uv_select_for_fallback(params, fallback),
]},
)
@@ -6324,7 +6330,7 @@ def km_3d_view_tool_cursor(params):
{"items": [
("view3d.cursor3d", {"type": params.tool_mouse, "value": 'PRESS'}, None),
# Don't use `tool_maybe_tweak_event` since it conflicts with `PRESS` that places the cursor.
- ("transform.translate", {"type": params.tool_tweak, "value": 'ANY'},
+ ("transform.translate", params.tool_tweak_event,
{"properties": [("release_confirm", True), ("cursor_transform", True)]}),
]},
)
@@ -6350,7 +6356,8 @@ def km_3d_view_tool_select_box(params, *, fallback):
{"items": [
*([] if (fallback and not params.use_fallback_tool) else _template_items_tool_select_actions(
"view3d.select_box",
- **({"type": params.select_tweak, "value": 'ANY'} if fallback else params.tool_maybe_tweak_event))),
+ # Don't use `tool_maybe_tweak_event`, see comment for this slot.
+ **({"type": params.select_tweak, "value": 'ANY'} if fallback else params.tool_tweak_event))),
*_template_view3d_select_for_fallback(params, fallback),
]},
)
@@ -6380,7 +6387,7 @@ def km_3d_view_tool_select_lasso(params, *, fallback):
{"items": [
*([] if (fallback and not params.use_fallback_tool) else _template_items_tool_select_actions(
"view3d.select_lasso",
- **({"type": params.select_tweak, "value": 'ANY'} if fallback else params.tool_maybe_tweak_event))),
+ **({"type": params.select_tweak, "value": 'ANY'} if fallback else params.tool_tweak_event))),
*_template_view3d_select_for_fallback(params, fallback),
]}
)
@@ -7035,10 +7042,8 @@ def km_3d_view_tool_sculpt_mask_by_color(params):
"3D View Tool: Sculpt, Mask by Color",
{"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
{"items": [
- ("sculpt.mask_by_color", {"type": params.tool_mouse, "value": 'ANY'},
- None),
- ("sculpt.mask_by_color", {"type": params.tool_tweak, "value": 'ANY'},
- None),
+ ("sculpt.mask_by_color", {"type": params.tool_mouse, "value": 'ANY'}, None),
+ ("sculpt.mask_by_color", params.tool_tweak_event, None),
]},
)
@@ -7048,8 +7053,7 @@ def km_3d_view_tool_sculpt_face_set_edit(params):
"3D View Tool: Sculpt, Face Set Edit",
{"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
{"items": [
- ("sculpt.face_set_edit", {"type": params.tool_mouse, "value": 'PRESS'},
- None),
+ ("sculpt.face_set_edit", {"type": params.tool_mouse, "value": 'PRESS'}, None),
]},
)
@@ -7238,7 +7242,8 @@ def km_3d_view_tool_edit_gpencil_select_box(params, *, fallback):
{"items": [
*([] if (fallback and not params.use_fallback_tool) else _template_items_tool_select_actions(
"gpencil.select_box",
- **({"type": params.select_tweak, "value": 'ANY'} if fallback else params.tool_maybe_tweak_event))),
+ # Don't use `tool_maybe_tweak_event`, see comment for this slot.
+ **({"type": params.select_tweak, "value": 'ANY'} if fallback else params.tool_tweak_event))),
*_template_view3d_gpencil_select_for_fallback(params, fallback),
]},
)
@@ -7268,7 +7273,7 @@ def km_3d_view_tool_edit_gpencil_select_lasso(params, *, fallback):
{"items": [
*([] if (fallback and not params.use_fallback_tool) else _template_items_tool_select_actions(
"gpencil.select_lasso",
- **({"type": params.select_tweak, "value": 'ANY'} if fallback else params.tool_maybe_tweak_event))),
+ **({"type": params.select_tweak, "value": 'ANY'} if fallback else params.tool_tweak_event))),
*_template_view3d_gpencil_select_for_fallback(params, fallback),
]}
)
@@ -7367,7 +7372,7 @@ def km_3d_view_tool_sculpt_gpencil_select_box(params):
return (
"3D View Tool: Sculpt Gpencil, Select Box",
{"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
- {"items": _template_items_tool_select_actions("gpencil.select_box", **params.tool_maybe_tweak_event)},
+ {"items": _template_items_tool_select_actions("gpencil.select_box", **params.tool_tweak_event)},
)
@@ -7386,7 +7391,7 @@ def km_3d_view_tool_sculpt_gpencil_select_lasso(params):
return (
"3D View Tool: Sculpt Gpencil, Select Lasso",
{"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
- {"items": _template_items_tool_select_actions("gpencil.select_lasso", **params.tool_maybe_tweak_event)},
+ {"items": _template_items_tool_select_actions("gpencil.select_lasso", **params.tool_tweak_event)},
)
@@ -7408,8 +7413,9 @@ def km_sequencer_editor_tool_select_box(params, *, fallback):
_fallback_id("Sequencer Tool: Select Box", fallback),
{"space_type": 'SEQUENCE_EDITOR', "region_type": 'WINDOW'},
{"items": [
+ # Don't use `tool_maybe_tweak_event`, see comment for this slot.
*_template_items_tool_select_actions_simple(
- "sequencer.select_box", **params.tool_maybe_tweak_event,
+ "sequencer.select_box", **params.tool_tweak_event,
properties=[("tweak", params.select_mouse == 'LEFTMOUSE')],
),
# RMB select can already set the frame, match the tweak tool.