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>2020-01-21 15:58:27 +0300
committerCampbell Barton <ideasman42@gmail.com>2020-01-21 15:58:27 +0300
commit4c8de1040daec4616d7d6b0f43284c38001a3272 (patch)
treeb966349587c1ebc7b2d7c0d3b8dbc0a83fb91546
parent2e9d5ba2115ceabdc0e8cb2eaa148c81d7b04667 (diff)
parent79bd553f06283d7e30c76e3851c2444fa9a73ffb (diff)
Merge branch 'blender-v2.82-release'
-rw-r--r--release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py49
-rw-r--r--source/blender/makesrna/intern/rna_animviz.c8
2 files changed, 55 insertions, 2 deletions
diff --git a/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py b/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py
index 01db6994f37..ceca4687443 100644
--- a/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py
+++ b/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py
@@ -3669,7 +3669,7 @@ def km_generic_gizmo_maybe_drag(params):
# ------------------------------------------------------------------------------
# Full Configuration
-def generate_keymaps(params=None):
+def generate_keymaps_impl(params=None):
if params is None:
params = Params()
return [
@@ -3768,3 +3768,50 @@ def generate_keymaps(params=None):
km_3d_view_tool_scale(params),
]
+
+
+def keymap_transform_tool_mmb(keymap):
+ import re
+ # Any tool besides fallback tools.
+ re_fallback_tool = re.compile(
+ r".*\bTool:\s(?!"
+ r".*\bSelect Box$|"
+ r".*\bSelect Circle$|"
+ r".*\bSelect Lasso$|"
+ r".*\bTweak$)",
+ )
+ for km_name, km_args, km_content in keymap:
+ if re_fallback_tool.match(km_name):
+ km_items = km_content["items"]
+ km_items_new = []
+ for kmi in km_items:
+ ty = kmi[1]["type"]
+ if ty == 'LEFTMOUSE':
+ kmi = (kmi[0], kmi[1].copy(), kmi[2])
+ kmi[1]["type"] = 'MIDDLEMOUSE'
+ km_items_new.append(kmi)
+ elif ty == 'EVT_TWEAK_L':
+ kmi = (kmi[0], kmi[1].copy(), kmi[2])
+ kmi[1]["type"] = 'EVT_TWEAK_M'
+ km_items_new.append(kmi)
+ km_items.extend(km_items_new)
+
+
+def generate_keymaps(params=None):
+ import os
+ from bpy.utils import execfile
+ keymap = generate_keymaps_impl(params)
+
+ # Combine the key-map to support manipulating it, so we don't need to manually
+ # define key-map here just to manipulate them.
+ blender_default = execfile(
+ os.path.join(os.path.dirname(__file__), "blender_default.py"),
+ ).generate_keymaps()
+
+ keymap_existing_names = {km[0] for km in keymap}
+ keymap.extend([km for km in blender_default if km[0] not in keymap_existing_names])
+
+ # Manipulate the key-map.
+ keymap_transform_tool_mmb(keymap)
+
+ return keymap
diff --git a/source/blender/makesrna/intern/rna_animviz.c b/source/blender/makesrna/intern/rna_animviz.c
index f539da488ce..61a1f1ffcd5 100644
--- a/source/blender/makesrna/intern/rna_animviz.c
+++ b/source/blender/makesrna/intern/rna_animviz.c
@@ -63,6 +63,8 @@ static void rna_AnimViz_path_start_frame_set(PointerRNA *ptr, int value)
/* XXX: watchit! Path Start > MAXFRAME/2 could be a problem... */
data->path_sf = value;
+ FRAMENUMBER_MIN_CLAMP(data->path_sf);
+
CLAMP(data->path_ef, data->path_sf + 1, MAXFRAME / 2);
}
@@ -71,7 +73,11 @@ static void rna_AnimViz_path_end_frame_set(PointerRNA *ptr, int value)
bAnimVizSettings *data = (bAnimVizSettings *)ptr->data;
data->path_ef = value;
- CLAMP(data->path_sf, 1, data->path_ef - 1);
+ CLAMP_MAX(data->path_sf, data->path_ef - 1);
+ if (U.flag & USER_NONEGFRAMES) {
+ CLAMP_MIN(data->path_sf, 0);
+ CLAMP_MIN(data->path_ef, 1);
+ }
}
#else