diff options
6 files changed, 138 insertions, 381 deletions
diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py index 297ca5f6be6..590d7bf4148 100644 --- a/release/scripts/presets/keyconfig/keymap_data/blender_default.py +++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py @@ -4348,295 +4348,6 @@ def km_transform_modal_map(_params): return keymap -def km_3d_view_transform_gizmo(_params): - keymap = ( - "3D View: Transform Gizmo", - {"space_type": 'VIEW_3D', "region_type": 'WINDOW'}, - {"items": _template_items_gizmo_tweak_value()}, - ) - return keymap - - -def km_backdrop_transform_widget_tweak_modal_map(_params): - keymap = ( - "Backdrop Transform Widget Tweak Modal Map", - {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True}, - {"items": _template_items_gizmo_tweak_modal()}, - ) - return keymap - - -def km_backdrop_crop_widget(_params): - keymap = ( - "Backdrop Crop Widget", - {"space_type": 'NODE_EDITOR', "region_type": 'WINDOW'}, - {"items": _template_items_gizmo_tweak_value()}, - ) - return keymap - - -def km_backdrop_crop_widget_tweak_modal_map(_params): - keymap = ( - "Backdrop Crop Widget Tweak Modal Map", - {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True}, - {"items": _template_items_gizmo_tweak_modal()}, - ) - return keymap - - -def km_sun_beams_widget(_params): - keymap = ( - "Sun Beams Widget", - {"space_type": 'NODE_EDITOR', "region_type": 'WINDOW'}, - {"items": _template_items_gizmo_tweak_value()}, - ) - return keymap - - -def km_sun_beams_widget_tweak_modal_map(_params): - keymap = ( - "Sun Beams Widget Tweak Modal Map", - {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True}, - {"items": _template_items_gizmo_tweak_modal()}, - ) - return keymap - - -def km_corner_pin_widget(_params): - items = [] - keymap = ( - "Corner Pin Widget", - {"space_type": 'NODE_EDITOR', "region_type": 'WINDOW'}, - {"items": items}, - ) - - items.extend([ - ("gizmogroup.gizmo_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None), - ]) - - return keymap - - -def km_corner_pin_widget_tweak_modal_map(_params): - keymap = ( - "Corner Pin Widget Tweak Modal Map", - {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True}, - {"items": _template_items_gizmo_tweak_modal()}, - ) - return keymap - - -def km_uv_transform_gizmo(_params): - keymap = ( - "UV Transform Gizmo", - {"space_type": 'IMAGE_EDITOR', "region_type": 'WINDOW'}, - {"items": _template_items_gizmo_tweak_value()}, - ) - return keymap - - -def km_uv_transform_gizmo_tweak_modal_map(_params): - keymap = ( - "UV Transform Gizmo Tweak Modal Map", - {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True}, - {"items": _template_items_gizmo_tweak_modal()}, - ) - return keymap - - -def km_spot_light_widgets(_params): - items = [] - keymap = ( - "Spot Light Widgets", - {"space_type": 'VIEW_3D', "region_type": 'WINDOW'}, - {"items": items}, - ) - - items.extend([ - ("gizmogroup.gizmo_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None), - ]) - - return keymap - - -def km_spot_light_widgets_tweak_modal_map(_params): - keymap = ( - "Spot Light Widgets Tweak Modal Map", - {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True}, - {"items": _template_items_gizmo_tweak_modal()}, - ) - return keymap - - -def km_area_light_widgets(_params): - items = [] - keymap = ( - "Area Light Widgets", - {"space_type": 'VIEW_3D', "region_type": 'WINDOW'}, - {"items": items}, - ) - - items.extend([ - ("gizmogroup.gizmo_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None), - ("gizmogroup.gizmo_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None), - ]) - - return keymap - - -def km_area_light_widgets_tweak_modal_map(_params): - keymap = ( - "Area Light Widgets Tweak Modal Map", - {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True}, - {"items": _template_items_gizmo_tweak_modal()}, - ) - return keymap - - -def km_target_light_widgets(_params): - items = [] - keymap = ( - "Target Light Widgets", - {"space_type": 'VIEW_3D', "region_type": 'WINDOW'}, - {"items": items}, - ) - - items.extend([ - ("gizmogroup.gizmo_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None), - ]) - - return keymap - - -def km_target_light_widgets_tweak_modal_map(_params): - keymap = ( - "Target Light Widgets Tweak Modal Map", - {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True}, - {"items": _template_items_gizmo_tweak_modal()}, - ) - return keymap - - -def km_force_field_widgets(_params): - items = [] - keymap = ( - "Force Field Widgets", - {"space_type": 'VIEW_3D', "region_type": 'WINDOW'}, - {"items": items}, - ) - - items.extend([ - ("gizmogroup.gizmo_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None), - ]) - - return keymap - - -def km_force_field_widgets_tweak_modal_map(_params): - keymap = ( - "Force Field Widgets Tweak Modal Map", - {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True}, - {"items": _template_items_gizmo_tweak_modal()}, - ) - return keymap - - -def km_camera_widgets(_params): - items = [] - keymap = ( - "Camera Widgets", - {"space_type": 'VIEW_3D', "region_type": 'WINDOW'}, - {"items": items}, - ) - - items.extend([ - ("gizmogroup.gizmo_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None), - ]) - - return keymap - - -def km_camera_widgets_tweak_modal_map(_params): - keymap = ( - "Camera Widgets Tweak Modal Map", - {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True}, - {"items": _template_items_gizmo_tweak_modal()}, - ) - return keymap - - -def km_camera_view_widgets(_params): - items = [] - keymap = ( - "Camera View Widgets", - {"space_type": 'VIEW_3D', "region_type": 'WINDOW'}, - {"items": items}, - ) - - items.extend([ - ("gizmogroup.gizmo_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None), - ]) - - return keymap - - -def km_camera_view_widgets_tweak_modal_map(_params): - keymap = ( - "Camera View Widgets Tweak Modal Map", - {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True}, - {"items": _template_items_gizmo_tweak_modal()}, - ) - return keymap - - -def km_armature_spline_widgets(_params): - items = [] - keymap = ( - "Armature Spline Widgets", - {"space_type": 'VIEW_3D', "region_type": 'WINDOW'}, - {"items": items}, - ) - - items.extend([ - ("gizmogroup.gizmo_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None), - ]) - - return keymap - - -def km_armature_spline_widgets_tweak_modal_map(_params): - keymap = ( - "Armature Spline Widgets Tweak Modal Map", - {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True}, - {"items": _template_items_gizmo_tweak_modal()}, - ) - return keymap - - -def km_view3d_navigate(_params): - items = [] - keymap = ( - "View3D Navigate", - {"space_type": 'VIEW_3D', "region_type": 'WINDOW'}, - {"items": items}, - ) - - items.extend([ - ("gizmogroup.gizmo_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None), - ]) - - return keymap - - -def km_view3d_navigate_tweak_modal_map(_params): - keymap = ( - "View3D Navigate Tweak Modal Map", - {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True}, - {"items": _template_items_gizmo_tweak_modal()}, - ) - return keymap - - def km_view3d_gesture_circle(_params): items = [] keymap = ( @@ -5024,29 +4735,43 @@ def km_paint_stroke_modal(_params): return keymap -def km_gizmos(_params): - items = [] +# Fallback for gizmos that don't have custom a custom key-map. +def km_generic_gizmos(_params): keymap = ( - "Gizmos", + "Generic Gizmos", {"space_type": 'EMPTY', "region_type": 'WINDOW'}, - {"items": items}, + {"items": _template_items_gizmo_tweak_value()}, ) return keymap -def km_backdrop_transform_widget(_params): - items = [] +def km_generic_gizmos_tweak_modal_map(_params): keymap = ( - "Backdrop Transform Widget", - {"space_type": 'NODE_EDITOR', "region_type": 'WINDOW'}, - {"items": items}, + "Generic Gizmos Tweak Modal Map", + {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True}, + {"items": _template_items_gizmo_tweak_modal()}, ) + return keymap + + +def km_generic_gizmos_select(_params): + keymap = ( + "Generic Gizmos Select", + {"space_type": 'EMPTY', "region_type": 'WINDOW'}, + # TODO, currently in C code. + {"items": _template_items_gizmo_tweak_value()}, + ) + + return keymap - items.extend([ - ("gizmogroup.gizmo_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None), - ]) +def km_generic_gizmos_select_tweak_modal_map(_params): + keymap = ( + "Generic Gizmos Select Tweak Modal Map", + {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True}, + {"items": _template_items_gizmo_tweak_modal()}, + ) return keymap @@ -6117,8 +5842,6 @@ def generate_keymaps(params=None): km_eyedropper_modal_map(params), km_eyedropper_colorramp_pointsampling_map(params), km_transform_modal_map(params), - km_view3d_navigate(params), - km_view3d_navigate_tweak_modal_map(params), km_view3d_gesture_circle(params), km_gesture_border(params), km_gesture_zoom_border(params), @@ -6136,32 +5859,10 @@ def generate_keymaps(params=None): km_paint_stroke_modal(params), # Gizmos. - km_gizmos(params), - km_3d_view_transform_gizmo(params), - km_backdrop_transform_widget_tweak_modal_map(params), - km_backdrop_crop_widget(params), - km_backdrop_crop_widget_tweak_modal_map(params), - km_sun_beams_widget(params), - km_sun_beams_widget_tweak_modal_map(params), - km_corner_pin_widget(params), - km_corner_pin_widget_tweak_modal_map(params), - km_uv_transform_gizmo(params), - km_uv_transform_gizmo_tweak_modal_map(params), - km_spot_light_widgets(params), - km_spot_light_widgets_tweak_modal_map(params), - km_area_light_widgets(params), - km_area_light_widgets_tweak_modal_map(params), - km_target_light_widgets(params), - km_target_light_widgets_tweak_modal_map(params), - km_force_field_widgets(params), - km_force_field_widgets_tweak_modal_map(params), - km_camera_widgets(params), - km_camera_widgets_tweak_modal_map(params), - km_camera_view_widgets(params), - km_camera_view_widgets_tweak_modal_map(params), - km_armature_spline_widgets(params), - km_armature_spline_widgets_tweak_modal_map(params), - km_backdrop_transform_widget(params), + km_generic_gizmos(params), + km_generic_gizmos_tweak_modal_map(params), + km_generic_gizmos_select(params), + km_generic_gizmos_select_tweak_modal_map(params), # Pop-Up Keymaps. km_popup_toolbar(params), 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 a2f255af10f..e98f34fc8bf 100644 --- a/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py +++ b/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py @@ -3534,27 +3534,46 @@ def km_transform_modal_map(_params): # ------------------------------------------------------------------------------ # Gizmo System Keymaps -def km_gizmos(_params): - items = [] +# Fallback for gizmos that don't have custom a custom key-map. +def km_generic_gizmos(_params): keymap = ( - "Gizmos", + "Generic Gizmos", {"space_type": 'EMPTY', "region_type": 'WINDOW'}, - {"items": items}, + {"items": _template_items_gizmo_tweak_value()}, ) return keymap -def km_3d_view_transform_gizmo(_params): +def km_generic_gizmos_tweak_modal_map(_params): keymap = ( - "3D View: Transform Gizmo", - {"space_type": 'VIEW_3D', "region_type": 'WINDOW'}, + "Generic Gizmos Tweak Modal Map", + {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True}, + {"items": _template_items_gizmo_tweak_modal()}, + ) + return keymap + + +def km_generic_gizmos_select(_params): + keymap = ( + "Generic Gizmos Select", + {"space_type": 'EMPTY', "region_type": 'WINDOW'}, + # TODO, currently in C code. {"items": _template_items_gizmo_tweak_value()}, ) return keymap +def km_generic_gizmos_select_tweak_modal_map(_params): + keymap = ( + "Generic Gizmos Select Tweak Modal Map", + {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True}, + {"items": _template_items_gizmo_tweak_modal()}, + ) + return keymap + + # ------------------------------------------------------------------------------ # Tool System Keymaps @@ -3743,8 +3762,10 @@ def generate_keymaps(params=None): km_transform_modal_map(params), # Gizmos. - km_gizmos(params), - km_3d_view_transform_gizmo(params), + km_generic_gizmos(params), + km_generic_gizmos_tweak_modal_map(params), + km_generic_gizmos_select(params), + km_generic_gizmos_select_tweak_modal_map(params), # Tool System. km_3d_view_tool_move(params), diff --git a/source/blender/editors/transform/transform_gizmo_3d.c b/source/blender/editors/transform/transform_gizmo_3d.c index ead90b6a67a..ef3abe96f46 100644 --- a/source/blender/editors/transform/transform_gizmo_3d.c +++ b/source/blender/editors/transform/transform_gizmo_3d.c @@ -1976,12 +1976,6 @@ static bool WIDGETGROUP_gizmo_poll_tool(const struct bContext *C, struct wmGizmo return true; } -static wmKeyMap *WIDGETGROUP_gizmo_setup_keymap(const struct wmGizmoGroupType *gzgt, - struct wmKeyConfig *config) -{ - return WM_gizmogroup_keymap_common_with_name(gzgt, config, "3D View: Transform Gizmo"); -} - /* Expose as multiple gizmos so tools use one, persistent context another. * Needed because they use different options which isn't so simple to dynamically update. */ @@ -2001,7 +1995,6 @@ void VIEW3D_GGT_xform_gizmo(wmGizmoGroupType *gzgt) gzgt->message_subscribe = WIDGETGROUP_gizmo_message_subscribe; gzgt->draw_prepare = WIDGETGROUP_gizmo_draw_prepare; gzgt->invoke_prepare = WIDGETGROUP_gizmo_invoke_prepare; - gzgt->setup_keymap = WIDGETGROUP_gizmo_setup_keymap; static const EnumPropertyItem rna_enum_gizmo_items[] = { {V3D_GIZMO_SHOW_OBJECT_TRANSLATE, "TRANSLATE", 0, "Move", ""}, @@ -2032,7 +2025,6 @@ void VIEW3D_GGT_xform_gizmo_context(wmGizmoGroupType *gzgt) gzgt->message_subscribe = WIDGETGROUP_gizmo_message_subscribe; gzgt->draw_prepare = WIDGETGROUP_gizmo_draw_prepare; gzgt->invoke_prepare = WIDGETGROUP_gizmo_invoke_prepare; - gzgt->setup_keymap = WIDGETGROUP_gizmo_setup_keymap; } /** \} */ diff --git a/source/blender/windowmanager/gizmo/WM_gizmo_api.h b/source/blender/windowmanager/gizmo/WM_gizmo_api.h index 4c24762416e..bef3cd51aea 100644 --- a/source/blender/windowmanager/gizmo/WM_gizmo_api.h +++ b/source/blender/windowmanager/gizmo/WM_gizmo_api.h @@ -235,14 +235,21 @@ void WM_gizmo_target_property_subscribe_all(struct wmGizmo *gz, /* wmGizmoGroup */ /* Callbacks for 'wmGizmoGroupType.setup_keymap' */ -struct wmKeyMap *WM_gizmogroup_keymap_common_with_name(const struct wmGizmoGroupType *gzgt, - struct wmKeyConfig *config, - const char *idname); -struct wmKeyMap *WM_gizmogroup_keymap_common(const struct wmGizmoGroupType *gzgt, - struct wmKeyConfig *config); - -struct wmKeyMap *WM_gizmogroup_keymap_common_select(const struct wmGizmoGroupType *gzgt, - struct wmKeyConfig *config); +struct wmKeyMap *WM_gizmogroup_keymap_template_ex(struct wmKeyConfig *config, + const char *idname, + const struct wmGizmoMapType_Params *params); +struct wmKeyMap *WM_gizmogroup_keymap_template(const struct wmGizmoGroupType *gzgt, + struct wmKeyConfig *config); + +struct wmKeyMap *WM_gizmogroup_keymap_template_select_ex( + struct wmKeyConfig *config, const char *idname, const struct wmGizmoMapType_Params *params); +struct wmKeyMap *WM_gizmogroup_keymap_template_select(const struct wmGizmoGroupType *gzgt, + struct wmKeyConfig *config); + +struct wmKeyMap *WM_gizmogroup_keymap_generic(const struct wmGizmoGroupType *gzgt, + struct wmKeyConfig *config); +struct wmKeyMap *WM_gizmogroup_keymap_generic_select(const struct wmGizmoGroupType *gzgt, + struct wmKeyConfig *config); void WM_gizmogroup_ensure_init(const struct bContext *C, struct wmGizmoGroup *gzgroup); diff --git a/source/blender/windowmanager/gizmo/intern/wm_gizmo_group.c b/source/blender/windowmanager/gizmo/intern/wm_gizmo_group.c index 68020c736d8..d4e1dbfac73 100644 --- a/source/blender/windowmanager/gizmo/intern/wm_gizmo_group.c +++ b/source/blender/windowmanager/gizmo/intern/wm_gizmo_group.c @@ -682,37 +682,53 @@ static wmKeyMap *gizmogroup_tweak_modal_keymap(wmKeyConfig *keyconf, const char /** * Common default keymap for gizmo groups. * - * \param name: Typically #wmGizmoGroupType.name. + * \param name: Typically #wmGizmoGroupType.name + * \param params: Typically #wmGizmoGroupType.gzmap_params */ -wmKeyMap *WM_gizmogroup_keymap_common_with_name(const wmGizmoGroupType *gzgt, - wmKeyConfig *config, - const char *name) +wmKeyMap *WM_gizmogroup_keymap_template_ex(wmKeyConfig *config, + const char *name, + const struct wmGizmoMapType_Params *params) { /* Use area and region id since we might have multiple gizmos * with the same name in different areas/regions. */ - wmKeyMap *km = WM_keymap_ensure( - config, name, gzgt->gzmap_params.spaceid, gzgt->gzmap_params.regionid); - - WM_keymap_add_item(km, "GIZMOGROUP_OT_gizmo_tweak", LEFTMOUSE, KM_PRESS, KM_ANY, 0); + wmKeyMap *km = WM_keymap_ensure(config, name, params->spaceid, params->regionid); + if (BLI_listbase_is_empty(&km->items)) { + WM_keymap_add_item(km, "GIZMOGROUP_OT_gizmo_tweak", LEFTMOUSE, KM_PRESS, KM_ANY, 0); + } gizmogroup_tweak_modal_keymap(config, name); return km; } -wmKeyMap *WM_gizmogroup_keymap_common(const wmGizmoGroupType *gzgt, wmKeyConfig *config) +wmKeyMap *WM_gizmogroup_keymap_template(const wmGizmoGroupType *gzgt, wmKeyConfig *config) { - return WM_gizmogroup_keymap_common_with_name(gzgt, config, gzgt->name); + return WM_gizmogroup_keymap_template_ex(config, gzgt->name, &gzgt->gzmap_params); +} + +wmKeyMap *WM_gizmogroup_keymap_generic(const wmGizmoGroupType *UNUSED(gzgt), wmKeyConfig *config) +{ + struct wmGizmoMapType_Params params = { + .spaceid = SPACE_EMPTY, + .regionid = RGN_TYPE_WINDOW, + }; + return WM_gizmogroup_keymap_template_ex(config, "Generic Gizmos", ¶ms); } /** * Variation of #WM_gizmogroup_keymap_common but with keymap items for selection + * + * \param name: Typically #wmGizmoGroupType.name + * \param params: Typically #wmGizmoGroupType.gzmap_params */ -wmKeyMap *WM_gizmogroup_keymap_common_select(const wmGizmoGroupType *gzgt, wmKeyConfig *config) +wmKeyMap *WM_gizmogroup_keymap_template_select_ex(wmKeyConfig *config, + const char *name, + const struct wmGizmoMapType_Params *params) { /* Use area and region id since we might have multiple gizmos * with the same name in different areas/regions. */ - wmKeyMap *km = WM_keymap_ensure( - config, gzgt->name, gzgt->gzmap_params.spaceid, gzgt->gzmap_params.regionid); + wmKeyMap *km = WM_keymap_ensure(config, name, params->spaceid, params->regionid); + const bool do_init = BLI_listbase_is_empty(&km->items); + /* FIXME(campbell) */ #if 0 const int select_mouse = (U.flag & USER_LMOUSESELECT) ? LEFTMOUSE : RIGHTMOUSE; @@ -724,23 +740,43 @@ wmKeyMap *WM_gizmogroup_keymap_common_select(const wmGizmoGroupType *gzgt, wmKey const int action_mouse = LEFTMOUSE; #endif - WM_keymap_add_item(km, "GIZMOGROUP_OT_gizmo_tweak", action_mouse, KM_PRESS, KM_ANY, 0); - WM_keymap_add_item(km, "GIZMOGROUP_OT_gizmo_tweak", select_tweak, KM_ANY, 0, 0); - gizmogroup_tweak_modal_keymap(config, gzgt->name); + if (do_init) { + WM_keymap_add_item(km, "GIZMOGROUP_OT_gizmo_tweak", action_mouse, KM_PRESS, KM_ANY, 0); + WM_keymap_add_item(km, "GIZMOGROUP_OT_gizmo_tweak", select_tweak, KM_ANY, 0, 0); + } + gizmogroup_tweak_modal_keymap(config, name); - wmKeyMapItem *kmi = WM_keymap_add_item( - km, "GIZMOGROUP_OT_gizmo_select", select_mouse, KM_PRESS, 0, 0); - RNA_boolean_set(kmi->ptr, "extend", false); - RNA_boolean_set(kmi->ptr, "deselect", false); - RNA_boolean_set(kmi->ptr, "toggle", false); - kmi = WM_keymap_add_item(km, "GIZMOGROUP_OT_gizmo_select", select_mouse, KM_PRESS, KM_SHIFT, 0); - RNA_boolean_set(kmi->ptr, "extend", false); - RNA_boolean_set(kmi->ptr, "deselect", false); - RNA_boolean_set(kmi->ptr, "toggle", true); + if (do_init) { + wmKeyMapItem *kmi = WM_keymap_add_item( + km, "GIZMOGROUP_OT_gizmo_select", select_mouse, KM_PRESS, 0, 0); + RNA_boolean_set(kmi->ptr, "extend", false); + RNA_boolean_set(kmi->ptr, "deselect", false); + RNA_boolean_set(kmi->ptr, "toggle", false); + kmi = WM_keymap_add_item( + km, "GIZMOGROUP_OT_gizmo_select", select_mouse, KM_PRESS, KM_SHIFT, 0); + RNA_boolean_set(kmi->ptr, "extend", false); + RNA_boolean_set(kmi->ptr, "deselect", false); + RNA_boolean_set(kmi->ptr, "toggle", true); + } return km; } +wmKeyMap *WM_gizmogroup_keymap_template_select(const wmGizmoGroupType *gzgt, wmKeyConfig *config) +{ + return WM_gizmogroup_keymap_template_select_ex(config, gzgt->name, &gzgt->gzmap_params); +} + +wmKeyMap *WM_gizmogroup_keymap_generic_select(const wmGizmoGroupType *UNUSED(gzgt), + wmKeyConfig *config) +{ + struct wmGizmoMapType_Params params = { + .spaceid = SPACE_EMPTY, + .regionid = RGN_TYPE_WINDOW, + }; + return WM_gizmogroup_keymap_template_select_ex(config, "Generic Gizmos Select", ¶ms); +} + /** \} */ /* wmGizmoGroup */ /* -------------------------------------------------------------------- */ diff --git a/source/blender/windowmanager/gizmo/intern/wm_gizmo_group_type.c b/source/blender/windowmanager/gizmo/intern/wm_gizmo_group_type.c index 7c8db18c0ca..d09e088af7f 100644 --- a/source/blender/windowmanager/gizmo/intern/wm_gizmo_group_type.c +++ b/source/blender/windowmanager/gizmo/intern/wm_gizmo_group_type.c @@ -97,10 +97,10 @@ static void wm_gizmogrouptype_append__end(wmGizmoGroupType *gzgt) /* if not set, use default */ if (gzgt->setup_keymap == NULL) { if (gzgt->flag & WM_GIZMOGROUPTYPE_SELECT) { - gzgt->setup_keymap = WM_gizmogroup_keymap_common_select; + gzgt->setup_keymap = WM_gizmogroup_keymap_generic_select; } else { - gzgt->setup_keymap = WM_gizmogroup_keymap_common; + gzgt->setup_keymap = WM_gizmogroup_keymap_generic; } } |