[Bf-blender-cvs] [68759625b11] blender-v3.0-release: Fix T92053: Industry compatible key-map fallback tools don't work

Campbell Barton noreply at git.blender.org
Wed Nov 3 05:55:50 CET 2021


Commit: 68759625b113cb190e96024fec5f397da61be0d0
Author: Campbell Barton
Date:   Wed Nov 3 15:43:32 2021 +1100
Branches: blender-v3.0-release
https://developer.blender.org/rB68759625b113cb190e96024fec5f397da61be0d0

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.

===================================================================

M	release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py

===================================================================

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])



More information about the Bf-blender-cvs mailing list