diff options
author | Campbell Barton <ideasman42@gmail.com> | 2021-11-03 07:43:32 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2021-11-03 07:52:42 +0300 |
commit | 68759625b113cb190e96024fec5f397da61be0d0 (patch) | |
tree | 1823088b5e5f4e5cb514a61acba937e8adff12db /release | |
parent | 7996b49cb050eb22fcc4305952d6c972c6c16f24 (diff) |
Fix T92053: Industry compatible key-map fallback tools don't work
Caused by c9d9bfa84ad5cb985e3feccffa702b2f3cc2adf8.
Support for fallback tools with right-click select needed
the industry compatible key-map to be updated.
Diffstat (limited to 'release')
-rw-r--r-- | release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py | 47 |
1 files changed, 32 insertions, 15 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 0ae64dbc62e..37cd554e872 100644 --- a/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py +++ b/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py @@ -4203,20 +4203,29 @@ def keymap_transform_tool_mmb(keymap): 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]) - if kmi[1]["value"] == 'ANY': + if km_name.endswith(" (fallback)"): + if ty == 'RIGHTMOUSE': + kmi = (kmi[0], kmi[1].copy(), kmi[2]) + kmi[1]["type"] = 'LEFTMOUSE' + km_items_new.append(kmi) + elif ty == 'EVT_TWEAK_R': + kmi = (kmi[0], kmi[1].copy(), kmi[2]) + kmi[1]["type"] = 'EVT_TWEAK_L' + km_items_new.append(kmi) + else: + if ty == 'LEFTMOUSE': + kmi = (kmi[0], kmi[1].copy(), kmi[2]) kmi[1]["type"] = 'MIDDLEMOUSE' - kmi[1]["value"] = 'PRESS' - else: - # Directional tweaking can't be replaced by middle-mouse. - kmi[1]["type"] = 'EVT_TWEAK_M' - - km_items_new.append(kmi) + km_items_new.append(kmi) + elif ty == 'EVT_TWEAK_L': + kmi = (kmi[0], kmi[1].copy(), kmi[2]) + if kmi[1]["value"] == 'ANY': + kmi[1]["type"] = 'MIDDLEMOUSE' + kmi[1]["value"] = 'PRESS' + else: + # Directional tweaking can't be replaced by middle-mouse. + kmi[1]["type"] = 'EVT_TWEAK_M' + km_items_new.append(kmi) km_items.extend(km_items_new) @@ -4227,9 +4236,17 @@ def generate_keymaps(params=None): # 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( + blender_default_mod = execfile( os.path.join(os.path.dirname(__file__), "blender_default.py"), - ).generate_keymaps() + ) + + blender_default = blender_default_mod.generate_keymaps( + # Use the default key-map with only minor changes to default arguments. + blender_default_mod.Params( + # Needed so the fallback key-map items are populated. + use_fallback_tool=True, + ), + ) 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]) |