Commit: 678c2003097d4a5f2def4e8a6f014420ad609d6e
Author: Campbell Barton
Date:   Thu Oct 18 12:30:23 2018 +1100
Branches: blender2.8
https://developer.blender.org/rB678c2003097d4a5f2def4e8a6f014420ad609d6e

Gizmo: remove 'Click Anywhere' option

Having an invisible gizmo caused event handling problems (see: T56603).

This is hard to avoid since gizmos are similar to buttons in the way
they have priority over the regular keymap.

Transform events use tweak so events to fall though to the general
view 3d keymap (for cursor placement for eg).

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

M       release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
M       source/blender/editors/transform/transform_gizmo_3d.c
M       source/blender/makesdna/DNA_scene_types.h
M       source/blender/makesrna/intern/rna_scene.c

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

diff --git a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py 
b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
index 435eff24fcf..5b5e90609c9 100644
--- a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
@@ -320,56 +320,41 @@ class _defs_transform:
 
     @ToolDef.from_fn
     def translate():
-        def draw_settings(context, layout, tool):
-            tool_settings = context.tool_settings
-            layout.prop(tool_settings, "use_gizmo_apron")
         return dict(
             text="Move",
             # cursor='SCROLL_XY',
             icon="ops.transform.translate",
             widget="TRANSFORM_GGT_gizmo",
             operator="transform.translate",
-            # TODO, implement as optional fallback gizmo
-            # keymap=(
-            #     ("transform.translate", dict(release_confirm=True), 
dict(type='EVT_TWEAK_A', value='ANY')),
-            # ),
-            draw_settings=draw_settings,
+            keymap=(
+                ("transform.translate", dict(release_confirm=True), 
dict(type='EVT_TWEAK_A', value='ANY')),
+            ),
         )
 
     @ToolDef.from_fn
     def rotate():
-        def draw_settings(context, layout, tool):
-            tool_settings = context.tool_settings
-            layout.prop(tool_settings, "use_gizmo_apron")
         return dict(
             text="Rotate",
             # cursor='SCROLL_XY',
             icon="ops.transform.rotate",
             widget="TRANSFORM_GGT_gizmo",
             operator="transform.rotate",
-            # TODO, implement as optional fallback gizmo
-            # keymap=(
-            #     ("transform.rotate", dict(release_confirm=True), 
dict(type='EVT_TWEAK_A', value='ANY')),
-            # ),
-            draw_settings=draw_settings,
+            keymap=(
+                ("transform.rotate", dict(release_confirm=True), 
dict(type='EVT_TWEAK_A', value='ANY')),
+            ),
         )
 
     @ToolDef.from_fn
     def scale():
-        def draw_settings(context, layout, tool):
-            tool_settings = context.tool_settings
-            layout.prop(tool_settings, "use_gizmo_apron")
         return dict(
             text="Scale",
             # cursor='SCROLL_XY',
             icon="ops.transform.resize",
             widget="TRANSFORM_GGT_gizmo",
             operator="transform.resize",
-            # TODO, implement as optional fallback gizmo
-            # keymap=(
-            #     ("transform.resize", dict(release_confirm=True), 
dict(type='EVT_TWEAK_A', value='ANY')),
-            # ),
-            draw_settings=draw_settings,
+            keymap=(
+                ("transform.resize", dict(release_confirm=True), 
dict(type='EVT_TWEAK_A', value='ANY')),
+            ),
         )
 
     @ToolDef.from_fn
@@ -385,7 +370,6 @@ class _defs_transform:
     def transform():
         def draw_settings(context, layout, tool):
             tool_settings = context.tool_settings
-            layout.prop(tool_settings, "use_gizmo_apron")
             layout.prop(tool_settings, "use_gizmo_mode")
         return dict(
             text="Transform",
diff --git a/source/blender/editors/transform/transform_gizmo_3d.c 
b/source/blender/editors/transform/transform_gizmo_3d.c
index bf9f09abf3a..6297cb57c03 100644
--- a/source/blender/editors/transform/transform_gizmo_3d.c
+++ b/source/blender/editors/transform/transform_gizmo_3d.c
@@ -153,9 +153,7 @@ enum {
 #define MAN_AXIS_RANGE_SCALE_START MAN_AXIS_SCALE_X
 #define MAN_AXIS_RANGE_SCALE_END (MAN_AXIS_SCALE_ZX + 1)
 
-       MAN_AXIS_APRON_C,
-
-       MAN_AXIS_LAST = MAN_AXIS_APRON_C + 1,
+       MAN_AXIS_LAST = MAN_AXIS_SCALE_ZX + 1,
 };
 
 /* axis types */
@@ -169,7 +167,6 @@ enum {
 typedef struct GizmoGroup {
        bool all_hidden;
        int twtype;
-       int axis_type_default;
 
        /* Users may change the twtype, detect changes to re-setup gizmo 
options. */
        int twtype_init;
@@ -201,7 +198,7 @@ static wmGizmo *gizmo_get_axis_from_index(const GizmoGroup 
*ggd, const short axi
        return ggd->gizmos[axis_idx];
 }
 
-static short gizmo_get_axis_type(const int axis_idx, const int 
axis_type_default)
+static short gizmo_get_axis_type(const int axis_idx)
 {
        if (axis_idx >= MAN_AXIS_RANGE_TRANS_START && axis_idx < 
MAN_AXIS_RANGE_TRANS_END) {
                return MAN_AXES_TRANSLATE;
@@ -212,9 +209,6 @@ static short gizmo_get_axis_type(const int axis_idx, const 
int axis_type_default
        if (axis_idx >= MAN_AXIS_RANGE_SCALE_START && axis_idx < 
MAN_AXIS_RANGE_SCALE_END) {
                return MAN_AXES_SCALE;
        }
-       if (axis_idx == MAN_AXIS_APRON_C) {
-               return axis_type_default;
-       }
        BLI_assert(0);
        return -1;
 }
@@ -337,8 +331,6 @@ static bool gizmo_is_axis_visible(
                                rv3d->twdrawflag & MAN_SCALE_X &&
                                (twtype & SCE_GIZMO_SHOW_TRANSLATE) == 0 &&
                                (twtype & SCE_GIZMO_SHOW_ROTATE) == 0);
-               case MAN_AXIS_APRON_C:
-                       return true;
        }
        return false;
 }
@@ -1220,11 +1212,9 @@ static void gizmo_xform_message_subscribe(
        if (type_fn == TRANSFORM_GGT_gizmo) {
                extern PropertyRNA rna_ToolSettings_transform_pivot_point;
                extern PropertyRNA rna_ToolSettings_use_gizmo_mode;
-               extern PropertyRNA rna_ToolSettings_use_gizmo_apron;
                const PropertyRNA *props[] = {
                        &rna_ToolSettings_transform_pivot_point,
                        &rna_ToolSettings_use_gizmo_mode,
-                       &rna_ToolSettings_use_gizmo_apron,
                };
                for (int i = 0; i < ARRAY_SIZE(props); i++) {
                        WM_msg_subscribe_rna(mbus, &toolsettings_ptr, props[i], 
&msg_sub_value_gz_tag_refresh, __func__);
@@ -1358,12 +1348,6 @@ static GizmoGroup *gizmogroup_init(wmGizmoGroup *gzgroup)
        const wmGizmoType *gzt_dial = WM_gizmotype_find("GIZMO_GT_dial_3d", 
true);
        const wmGizmoType *gzt_prim = 
WM_gizmotype_find("GIZMO_GT_primitive_3d", true);
 
-       /* Fallback action. */
-       {
-               const wmGizmoType *gzt_mask = 
WM_gizmotype_find("GIZMO_GT_blank_3d", true);
-               ggd->gizmos[MAN_AXIS_APRON_C] = WM_gizmo_new_ptr(gzt_mask, 
gzgroup, NULL);
-       }
-
 #define GIZMO_NEW_ARROW(v, draw_style) { \
        ggd->gizmos[v] = WM_gizmo_new_ptr(gzt_arrow, gzgroup, NULL); \
        RNA_enum_set(ggd->gizmos[v]->ptr, "draw_style", draw_style); \
@@ -1452,22 +1436,9 @@ static void 
gizmogroup_init_properties_from_twtype(wmGizmoGroup *gzgroup)
        } ot_store = {NULL};
        GizmoGroup *ggd = gzgroup->customdata;
 
-       if (ggd->twtype & SCE_GIZMO_SHOW_TRANSLATE) {
-               ggd->axis_type_default = MAN_AXES_TRANSLATE;
-       }
-       else if (ggd->twtype & SCE_GIZMO_SHOW_ROTATE) {
-               ggd->axis_type_default = MAN_AXES_ROTATE;
-       }
-       else if (ggd->twtype & SCE_GIZMO_SHOW_SCALE) {
-               ggd->axis_type_default = MAN_AXES_SCALE;
-       }
-       else {
-               ggd->axis_type_default = 0;
-       }
-
        MAN_ITER_AXES_BEGIN(axis, axis_idx)
        {
-               const short axis_type = gizmo_get_axis_type(axis_idx, 
ggd->axis_type_default);
+               const short axis_type = gizmo_get_axis_type(axis_idx);
                bool constraint_axis[3] = {1, 0, 0};
                PointerRNA *ptr = NULL;
 
@@ -1530,9 +1501,6 @@ static void 
gizmogroup_init_properties_from_twtype(wmGizmoGroup *gzgroup)
                                        WM_gizmo_set_scale(axis, 0.2f);
                                }
                                break;
-                       case MAN_AXIS_APRON_C:
-                               WM_gizmo_set_scale(axis, 1.2f);
-                               break;
                }
 
                switch (axis_type) {
@@ -1651,7 +1619,7 @@ static void WIDGETGROUP_gizmo_refresh(const bContext *C, 
wmGizmoGroup *gzgroup)
 
        MAN_ITER_AXES_BEGIN(axis, axis_idx)
        {
-               const short axis_type = gizmo_get_axis_type(axis_idx, 
ggd->axis_type_default);
+               const short axis_type = gizmo_get_axis_type(axis_idx);
                const int aidx_norm = gizmo_orientation_axis(axis_idx, NULL);
 
                WM_gizmo_set_matrix_location(axis, rv3d->twmat[3]);
@@ -1716,7 +1684,6 @@ static void WIDGETGROUP_gizmo_message_subscribe(
 
 static void WIDGETGROUP_gizmo_draw_prepare(const bContext *C, wmGizmoGroup 
*gzgroup)
 {
-       const Scene *scene = CTX_data_scene(C);
        GizmoGroup *ggd = gzgroup->customdata;
        // ScrArea *sa = CTX_wm_area(C);
        ARegion *ar = CTX_wm_region(C);
@@ -1740,13 +1707,10 @@ static void WIDGETGROUP_gizmo_draw_prepare(const 
bContext *C, wmGizmoGroup *gzgr
 
        MAN_ITER_AXES_BEGIN(axis, axis_idx)
        {
-               const short axis_type = gizmo_get_axis_type(axis_idx, 
ggd->axis_type_default);
+               const short axis_type = gizmo_get_axis_type(axis_idx);
                /* XXX maybe unset _HIDDEN flag on redraw? */
 
-               if (axis_idx == MAN_AXIS_APRON_C) {
-                       WM_gizmo_set_flag(axis, WM_GIZMO_HIDDEN, 
(scene->toolsettings->gizmo_flag & SCE_GIZMO_DISABLE_APRON) != 0);
-               }
-               else if (gizmo_is_axis_visible(rv3d, ggd->twtype, idot, 
axis_type, axis_idx)) {
+               if (gizmo_is_axis_visible(rv3d, ggd->twtype, idot, axis_type, 
axis_idx)) {
                        WM_gizmo_set_flag(axis, WM_GIZMO_HIDDEN, false);
                }
                else {
@@ -1764,7 +1728,6 @@ static void WIDGETGROUP_gizmo_draw_prepare(const bContext 
*C, wmGizmoGroup *gzgr
                        case MAN_AXIS_ROT_C:
                        case MAN_AXIS_SCALE_C:
                        case MAN_AXIS_ROT_T:
-                       case MAN_AXIS_APRON_C:
                                WM_gizmo_set_matrix_rotation_from_z_axis(axis, 
rv3d->viewinv[2]);
                                break;
                }
diff --git a/source/blender/makesdna/DNA_scene_types.h 
b/source/blender/makesdna/DNA_scene_types.h
index 15e8f950686..ad38c7cfcdf 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -2074,8 +2074,6 @@ enum {
        SCE_GIZMO_SHOW_TRANSLATE = (1 << 0),
        SCE_GIZMO_SHOW_ROTATE    = (1 << 1),
        SCE_GIZMO_SHOW_SCALE     = (1 << 2),
-
-       SCE_GIZMO_DISABLE_APRON  = (1 << 3),
 };
 
 /* ToolSettings.gpencil_flags */
diff --git a/source/blender/makesrna/intern/rna_scene.c 
b/source/blender/makesrna/intern/rna_scene.c
index e845b31ca9c..7679ff41ba3 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -2479,11 +2479,6 @@ static void rna_def_tool_settings(BlenderRNA  *brna)
        RNA_def_property_ui_text(prop, "Gizmo Mode",  "");
        RNA_def_property_update(prop, NC_SCENE | ND_TOOLSETTINGS, 
"rna_ToolSettings_gizmo_flag_update");
 
-       prop = RNA_def_property(srna, "use_gizmo_apron", PROP_BOOLEAN, 
PROP_NONE);
-       RNA_def_property_boolean_negative_sdna(prop, NULL, "gizmo_flag", 
SCE_GIZMO_DISABLE_APRON);
-       RNA_def_property_ui_text(prop, "Click Anywhere", "Handle input not 
directly over the gizmo");
-       RNA_def_property_update(prop, NC_SCENE | ND_TOOLSETTINGS, NULL);
-
        /* Grease Pencil */
        prop = RNA_def_property(srna, "use_gpencil_additive_drawing", PRO

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to