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 <campbell@blender.org>2022-03-17 08:27:31 +0300
committerCampbell Barton <campbell@blender.org>2022-03-17 08:47:14 +0300
commitbb735bd51807f2315558d8a2fa6fbd78a58f88f9 (patch)
treedfaf26c5ad01ece9c017395b26806b528ffa7f74 /release/scripts
parent3017585ebfe84852f6969493badc77e27fdb8b54 (diff)
Tweak Tool: supports select & tweak on LMB (with RMB-select key-map)
Support for differentiating the tweak tool from the 3D cursor when select is set to RMB. This is currently an experimental preference: Tweak Tool: Left Mouse Select & Drag When enabled the tweak tool can now tweak the existing selection without de-selecting first, a single click can be used to replace the selection. This matches selection in the graph & node editors. This preferences is only available with "Developer Extras" enabled. Ref T96544.
Diffstat (limited to 'release/scripts')
-rw-r--r--release/scripts/presets/keyconfig/Blender.py22
-rw-r--r--release/scripts/presets/keyconfig/keymap_data/blender_default.py17
2 files changed, 39 insertions, 0 deletions
diff --git a/release/scripts/presets/keyconfig/Blender.py b/release/scripts/presets/keyconfig/Blender.py
index 74e0ddfdf62..8f9bea82358 100644
--- a/release/scripts/presets/keyconfig/Blender.py
+++ b/release/scripts/presets/keyconfig/Blender.py
@@ -85,6 +85,18 @@ class Prefs(bpy.types.KeyConfigPreferences):
),
update=update_fn,
)
+
+ # Experimental: only show with developer extras, see: T96544.
+ use_tweak_tool_lmb_interaction: BoolProperty(
+ name="Tweak Tool: Left Mouse Select & Move",
+ description=(
+ "The tweak tool is activated immediately instead of placing the cursor. "
+ "This is an experimental preference and may be removed"
+ ),
+ default=False,
+ update=update_fn,
+ )
+
use_alt_click_leader: BoolProperty(
name="Alt Click Tool Prompt",
description=(
@@ -236,6 +248,7 @@ class Prefs(bpy.types.KeyConfigPreferences):
prefs = context.preferences
+ show_developer_ui = prefs.view.show_developer_ui
is_select_left = (self.select_mouse == 'LEFT')
use_mouse_emulate_3_button = (
prefs.inputs.use_mouse_emulate_3_button and
@@ -270,6 +283,10 @@ class Prefs(bpy.types.KeyConfigPreferences):
row = sub.row()
row.prop(self, "use_select_all_toggle")
+ if show_developer_ui and (not is_select_left):
+ row = sub.row()
+ row.prop(self, "use_tweak_tool_lmb_interaction")
+
# 3DView settings.
col = layout.column()
col.label(text="3D View")
@@ -301,6 +318,7 @@ def load():
kc = context.window_manager.keyconfigs.new(IDNAME)
kc_prefs = kc.preferences
+ show_developer_ui = prefs.view.show_developer_ui
is_select_left = (kc_prefs.select_mouse == 'LEFT')
use_mouse_emulate_3_button = (
prefs.inputs.use_mouse_emulate_3_button and
@@ -322,6 +340,10 @@ def load():
use_gizmo_drag=(is_select_left and kc_prefs.gizmo_action == 'DRAG'),
use_fallback_tool=True,
use_fallback_tool_rmb=(False if is_select_left else kc_prefs.rmb_action == 'FALLBACK_TOOL'),
+ use_tweak_tool_lmb_interaction=(
+ False if is_select_left else
+ (show_developer_ui and kc_prefs.use_tweak_tool_lmb_interaction)
+ ),
use_alt_tool_or_cursor=(
(not use_mouse_emulate_3_button) and
(kc_prefs.use_alt_tool if is_select_left else kc_prefs.use_alt_cursor)
diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
index 80794d9f23d..ac9258d53ca 100644
--- a/release/scripts/presets/keyconfig/keymap_data/blender_default.py
+++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
@@ -31,6 +31,7 @@ class Params:
"context_menu_event",
"cursor_set_event",
"cursor_tweak_event",
+ "use_tweak_tool_lmb_interaction",
"use_mouse_emulate_3_button",
# User preferences:
@@ -102,6 +103,7 @@ class Params:
use_gizmo_drag=True,
use_fallback_tool=False,
use_fallback_tool_rmb=False,
+ use_tweak_tool_lmb_interaction=False,
use_v3d_tab_menu=False,
use_v3d_shade_ex_pie=False,
use_v3d_mmb_pan=False,
@@ -129,6 +131,7 @@ class Params:
self.tool_maybe_tweak_value = 'PRESS'
else:
self.tool_maybe_tweak_value = 'CLICK_DRAG'
+ self.use_tweak_tool_lmb_interaction = use_tweak_tool_lmb_interaction
self.context_menu_event = {"type": 'W', "value": 'PRESS'}
@@ -150,6 +153,7 @@ class Params:
self.action_mouse = 'RIGHTMOUSE'
self.tool_mouse = 'LEFTMOUSE'
self.tool_maybe_tweak_value = 'CLICK_DRAG'
+ self.use_tweak_tool_lmb_interaction = False
if self.legacy:
self.context_menu_event = {"type": 'W', "value": 'PRESS'}
@@ -457,6 +461,19 @@ def _template_items_tool_select(params, operator, cursor_operator, fallback, *,
{"properties": [(extend, True)]}),
]
else:
+ # Experimental support for LMB interaction for the tweak tool.
+ if params.use_tweak_tool_lmb_interaction and not fallback:
+ return [
+ (operator, {"type": 'LEFTMOUSE', "value": 'PRESS'},
+ {"properties": [("deselect_all", True), ("select_passthrough", True)]}),
+ (operator, {"type": 'LEFTMOUSE', "value": 'CLICK'},
+ {"properties": [("deselect_all", True)]}),
+ (operator, {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True},
+ {"properties": [("deselect_all", False), ("toggle", True)]}),
+ ("transform.translate", {"type": 'LEFTMOUSE', "value": 'CLICK_DRAG'},
+ {"properties": [("release_confirm", True)]}),
+ ]
+
# For right mouse, set the cursor.
return [
(cursor_operator, {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),