Gizmo: activate some gizmos on drag instead of press

Use drag-only keyamp to adjust gizmos which use drag motion
to change a value. By default gizmos still activate on press.

This allows for left click select to be used with transform
without the gizmos getting in the way.

Even though this isn't necessary for right click select
it allows click events to pass through and be used by tools
which can be useful.

Resolves T63996
This commit is contained in:
2019-05-30 15:20:20 +10:00
parent 0c8c160202
commit 8778dd0c8b
10 changed files with 18 additions and 0 deletions

View File

@@ -152,6 +152,7 @@ static void WM_GGT_value_operator_redo(wmGizmoGroupType *gzgt)
gzgt->gzmap_params.regionid = RGN_TYPE_WINDOW;
gzgt->setup = WIDGETGROUP_value_operator_redo_setup;
gzgt->setup_keymap = WM_gizmogroup_setup_keymap_generic_drag;
gzgt->refresh = WIDGETGROUP_value_operator_redo_refresh;
}

View File

@@ -461,6 +461,7 @@ static void IMAGE_GGT_gizmo2d(wmGizmoGroupType *gzgt)
gzgt->poll = ED_widgetgroup_gizmo2d_poll;
gzgt->setup = ED_widgetgroup_gizmo2d_setup;
gzgt->setup_keymap = WM_gizmogroup_setup_keymap_generic_drag;
gzgt->refresh = ED_widgetgroup_gizmo2d_refresh;
gzgt->draw_prepare = ED_widgetgroup_gizmo2d_draw_prepare;
}

View File

@@ -190,6 +190,7 @@ void NODE_GGT_backdrop_transform(wmGizmoGroupType *gzgt)
gzgt->poll = WIDGETGROUP_node_transform_poll;
gzgt->setup = WIDGETGROUP_node_transform_setup;
gzgt->setup_keymap = WM_gizmogroup_setup_keymap_generic_drag;
gzgt->refresh = WIDGETGROUP_node_transform_refresh;
}
@@ -410,6 +411,7 @@ void NODE_GGT_backdrop_crop(wmGizmoGroupType *gzgt)
gzgt->poll = WIDGETGROUP_node_crop_poll;
gzgt->setup = WIDGETGROUP_node_crop_setup;
gzgt->setup_keymap = WM_gizmogroup_setup_keymap_generic_drag;
gzgt->draw_prepare = WIDGETGROUP_node_crop_draw_prepare;
gzgt->refresh = WIDGETGROUP_node_crop_refresh;
}
@@ -514,6 +516,7 @@ void NODE_GGT_backdrop_sun_beams(wmGizmoGroupType *gzgt)
gzgt->poll = WIDGETGROUP_node_sbeam_poll;
gzgt->setup = WIDGETGROUP_node_sbeam_setup;
gzgt->setup_keymap = WM_gizmogroup_setup_keymap_generic_drag;
gzgt->draw_prepare = WIDGETGROUP_node_sbeam_draw_prepare;
gzgt->refresh = WIDGETGROUP_node_sbeam_refresh;
}
@@ -634,6 +637,7 @@ void NODE_GGT_backdrop_corner_pin(wmGizmoGroupType *gzgt)
gzgt->poll = WIDGETGROUP_node_corner_pin_poll;
gzgt->setup = WIDGETGROUP_node_corner_pin_setup;
gzgt->setup_keymap = WM_gizmogroup_setup_keymap_generic_drag;
gzgt->draw_prepare = WIDGETGROUP_node_corner_pin_draw_prepare;
gzgt->refresh = WIDGETGROUP_node_corner_pin_refresh;
}

View File

@@ -220,6 +220,7 @@ void VIEW3D_GGT_armature_spline(wmGizmoGroupType *gzgt)
gzgt->poll = WIDGETGROUP_armature_spline_poll;
gzgt->setup = WIDGETGROUP_armature_spline_setup;
gzgt->setup_keymap = WM_gizmogroup_setup_keymap_generic_drag;
gzgt->refresh = WIDGETGROUP_armature_spline_refresh;
}

View File

@@ -315,6 +315,7 @@ void VIEW3D_GGT_camera(wmGizmoGroupType *gzgt)
gzgt->poll = WIDGETGROUP_camera_poll;
gzgt->setup = WIDGETGROUP_camera_setup;
gzgt->setup_keymap = WM_gizmogroup_setup_keymap_generic_drag;
gzgt->refresh = WIDGETGROUP_camera_refresh;
gzgt->message_subscribe = WIDGETGROUP_camera_message_subscribe;
}

View File

@@ -200,6 +200,7 @@ void VIEW3D_GGT_empty_image(wmGizmoGroupType *gzgt)
gzgt->poll = WIDGETGROUP_empty_image_poll;
gzgt->setup = WIDGETGROUP_empty_image_setup;
gzgt->setup_keymap = WM_gizmogroup_setup_keymap_generic_drag;
gzgt->refresh = WIDGETGROUP_empty_image_refresh;
}

View File

@@ -117,6 +117,7 @@ void VIEW3D_GGT_force_field(wmGizmoGroupType *gzgt)
gzgt->poll = WIDGETGROUP_forcefield_poll;
gzgt->setup = WIDGETGROUP_forcefield_setup;
gzgt->setup_keymap = WM_gizmogroup_setup_keymap_generic_drag;
gzgt->refresh = WIDGETGROUP_forcefield_refresh;
}

View File

@@ -114,6 +114,7 @@ void VIEW3D_GGT_light_spot(wmGizmoGroupType *gzgt)
gzgt->poll = WIDGETGROUP_light_spot_poll;
gzgt->setup = WIDGETGROUP_light_spot_setup;
gzgt->setup_keymap = WM_gizmogroup_setup_keymap_generic_drag;
gzgt->refresh = WIDGETGROUP_light_spot_refresh;
}
@@ -230,6 +231,7 @@ void VIEW3D_GGT_light_area(wmGizmoGroupType *gzgt)
gzgt->poll = WIDGETGROUP_light_area_poll;
gzgt->setup = WIDGETGROUP_light_area_setup;
gzgt->setup_keymap = WM_gizmogroup_setup_keymap_generic_drag;
gzgt->refresh = WIDGETGROUP_light_area_refresh;
}
@@ -317,6 +319,7 @@ void VIEW3D_GGT_light_target(wmGizmoGroupType *gzgt)
gzgt->poll = WIDGETGROUP_light_target_poll;
gzgt->setup = WIDGETGROUP_light_target_setup;
gzgt->setup_keymap = WM_gizmogroup_setup_keymap_generic_drag;
gzgt->draw_prepare = WIDGETGROUP_light_target_draw_prepare;
}

View File

@@ -1993,6 +1993,7 @@ void VIEW3D_GGT_xform_gizmo(wmGizmoGroupType *gzgt)
gzgt->poll = WIDGETGROUP_gizmo_poll_tool;
gzgt->setup = WIDGETGROUP_gizmo_setup;
gzgt->setup_keymap = WM_gizmogroup_setup_keymap_generic_drag;
gzgt->refresh = WIDGETGROUP_gizmo_refresh;
gzgt->message_subscribe = WIDGETGROUP_gizmo_message_subscribe;
gzgt->draw_prepare = WIDGETGROUP_gizmo_draw_prepare;
@@ -2023,6 +2024,7 @@ void VIEW3D_GGT_xform_gizmo_context(wmGizmoGroupType *gzgt)
gzgt->poll = WIDGETGROUP_gizmo_poll_context;
gzgt->setup = WIDGETGROUP_gizmo_setup;
gzgt->setup_keymap = WM_gizmogroup_setup_keymap_generic_drag;
gzgt->refresh = WIDGETGROUP_gizmo_refresh;
gzgt->message_subscribe = WIDGETGROUP_gizmo_message_subscribe;
gzgt->draw_prepare = WIDGETGROUP_gizmo_draw_prepare;
@@ -2226,6 +2228,7 @@ void VIEW3D_GGT_xform_cage(wmGizmoGroupType *gzgt)
gzgt->poll = WIDGETGROUP_xform_cage_poll;
gzgt->setup = WIDGETGROUP_xform_cage_setup;
gzgt->setup_keymap = WM_gizmogroup_setup_keymap_generic_drag;
gzgt->refresh = WIDGETGROUP_xform_cage_refresh;
gzgt->message_subscribe = WIDGETGROUP_xform_cage_message_subscribe;
gzgt->draw_prepare = WIDGETGROUP_xform_cage_draw_prepare;
@@ -2409,6 +2412,7 @@ void VIEW3D_GGT_xform_shear(wmGizmoGroupType *gzgt)
gzgt->poll = WIDGETGROUP_xform_shear_poll;
gzgt->setup = WIDGETGROUP_xform_shear_setup;
gzgt->setup_keymap = WM_gizmogroup_setup_keymap_generic_drag;
gzgt->refresh = WIDGETGROUP_xform_shear_refresh;
gzgt->message_subscribe = WIDGETGROUP_xform_shear_message_subscribe;
gzgt->draw_prepare = WIDGETGROUP_xform_shear_draw_prepare;

View File

@@ -463,6 +463,7 @@ void VIEW3D_GGT_xform_extrude(struct wmGizmoGroupType *gzgt)
gzgt->poll = ED_gizmo_poll_or_unlink_delayed_from_tool;
gzgt->setup = gizmo_mesh_extrude_setup;
gzgt->setup_keymap = WM_gizmogroup_setup_keymap_generic_drag;
gzgt->refresh = gizmo_mesh_extrude_refresh;
gzgt->draw_prepare = gizmo_mesh_extrude_draw_prepare;
gzgt->invoke_prepare = gizmo_mesh_extrude_invoke_prepare;