diff options
author | Campbell Barton <ideasman42@gmail.com> | 2020-01-21 15:58:27 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2020-01-21 15:58:27 +0300 |
commit | 4c8de1040daec4616d7d6b0f43284c38001a3272 (patch) | |
tree | b966349587c1ebc7b2d7c0d3b8dbc0a83fb91546 | |
parent | 2e9d5ba2115ceabdc0e8cb2eaa148c81d7b04667 (diff) | |
parent | 79bd553f06283d7e30c76e3851c2444fa9a73ffb (diff) |
Merge branch 'blender-v2.82-release'
-rw-r--r-- | release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py | 49 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_animviz.c | 8 |
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 |