Commit: 14c252b73bcc5e34ace1afa46983119244e5a387
Author: Antonio Vazquez
Date:   Sun Jun 11 20:16:01 2017 +0200
Branches: greasepencil-object
https://developer.blender.org/rB14c252b73bcc5e34ace1afa46983119244e5a387

Fix problem with Tab key

The Tab key must enable Edit mode and back to previous mode

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

M       source/blender/editors/gpencil/gpencil_ops.c
M       source/blender/editors/object/object_edit.c

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

diff --git a/source/blender/editors/gpencil/gpencil_ops.c 
b/source/blender/editors/gpencil/gpencil_ops.c
index 7c5d0072c97..c5b34a01e7b 100644
--- a/source/blender/editors/gpencil/gpencil_ops.c
+++ b/source/blender/editors/gpencil/gpencil_ops.c
@@ -237,7 +237,7 @@ static void ed_keymap_gpencil_editing(wmKeyConfig *keyconf)
        
        /* Exit EditMode */
        kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_editmode_toggle", TABKEY, 
KM_PRESS, 0, 0);
-       RNA_int_set(kmi->ptr, "back", 0);
+       RNA_int_set(kmi->ptr, "back", 1);
 
        kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_editmode_toggle", TABKEY, 
KM_PRESS, KM_CTRL, 0);
        RNA_int_set(kmi->ptr, "back", 1);
@@ -342,9 +342,11 @@ static void ed_keymap_gpencil_editing(wmKeyConfig *keyconf)
        ED_keymap_proportional_editmode(keyconf, keymap, true);
 
        /* Enter PaintMode */
-       WM_keymap_add_item(keymap, "GPENCIL_OT_paintmode_toggle", DKEY, 
KM_PRESS, 0, 0);
+       kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_paintmode_toggle", DKEY, 
KM_PRESS, 0, 0);
+       RNA_int_set(kmi->ptr, "back", 1);
        /* Enter SculptMode */
-       WM_keymap_add_item(keymap, "GPENCIL_OT_sculptmode_toggle", EKEY, 
KM_PRESS, 0, 0);
+       kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_sculptmode_toggle", EKEY, 
KM_PRESS, 0, 0);
+       RNA_int_set(kmi->ptr, "back", 1);
 
 }
 
@@ -381,8 +383,8 @@ static void ed_keymap_gpencil_painting(wmKeyConfig *keyconf)
        RNA_boolean_set(kmi->ptr, "wait_for_input", false);
 
        /* Exit PaintMode */
-       kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_paintmode_toggle", TABKEY, 
KM_PRESS, 0, 0);
-       RNA_int_set(kmi->ptr, "back", 0);
+       kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_editmode_toggle", TABKEY, 
KM_PRESS, 0, 0);
+       RNA_int_set(kmi->ptr, "back", 1);
 
        kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_paintmode_toggle", TABKEY, 
KM_PRESS, KM_CTRL, 0);
        RNA_int_set(kmi->ptr, "back", 1);
@@ -413,9 +415,11 @@ static void ed_keymap_gpencil_painting(wmKeyConfig 
*keyconf)
        RNA_int_set(kmi->ptr, "index", 9);
 
        /* Enter EditMode */
-       WM_keymap_add_item(keymap, "GPENCIL_OT_editmode_toggle", TABKEY, 
KM_PRESS, KM_SHIFT, 0);
+       kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_editmode_toggle", TABKEY, 
KM_PRESS, KM_SHIFT, 0);
+       RNA_int_set(kmi->ptr, "back", 1);
        /* Enter SculptMode */
-       WM_keymap_add_item(keymap, "GPENCIL_OT_sculptmode_toggle", EKEY, 
KM_PRESS, 0, 0);
+       kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_sculptmode_toggle", EKEY, 
KM_PRESS, 0, 0);
+       RNA_int_set(kmi->ptr, "back", 1);
 }
 
 /* Stroke Sculpting Keymap - Only when sculptmode is enabled */
@@ -428,8 +432,8 @@ static void ed_keymap_gpencil_sculpting(wmKeyConfig 
*keyconf)
        keymap->poll = gp_stroke_sculptmode_poll;
 
        /* Exit SculptMode */
-       kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_sculptmode_toggle", 
TABKEY, KM_PRESS, 0, 0);
-       RNA_int_set(kmi->ptr, "back", 0);
+       kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_editmode_toggle", TABKEY, 
KM_PRESS, 0, 0);
+       RNA_int_set(kmi->ptr, "back", 1);
        
        kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_sculptmode_toggle", 
TABKEY, KM_PRESS, KM_CTRL, 0);
        RNA_int_set(kmi->ptr, "back", 1);
@@ -461,9 +465,11 @@ static void ed_keymap_gpencil_sculpting(wmKeyConfig 
*keyconf)
        RNA_int_set(kmi->ptr, "index", 8);
 
        /* Enter EditMode */
-       WM_keymap_add_item(keymap, "GPENCIL_OT_editmode_toggle", TABKEY, 
KM_PRESS, KM_SHIFT, 0);
+       kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_editmode_toggle", TABKEY, 
KM_PRESS, KM_SHIFT, 0);
+       RNA_int_set(kmi->ptr, "back", 1);
        /* Enter PaintMode */
-       WM_keymap_add_item(keymap, "GPENCIL_OT_paintmode_toggle", DKEY, 
KM_PRESS, 0, 0);
+       kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_paintmode_toggle", DKEY, 
KM_PRESS, 0, 0);
+       RNA_int_set(kmi->ptr, "back", 1);
 }
 
 /* ==================== */
diff --git a/source/blender/editors/object/object_edit.c 
b/source/blender/editors/object/object_edit.c
index b3ee245f8e7..516db440ec3 100644
--- a/source/blender/editors/object/object_edit.c
+++ b/source/blender/editors/object/object_edit.c
@@ -1564,14 +1564,17 @@ static int object_mode_set_exec(bContext *C, wmOperator 
*op)
                                return OPERATOR_FINISHED;
                        }
                        if (mode == OB_MODE_GPENCIL_EDIT) {
+                               ob->restore_mode = ob->mode;
                                WM_operator_name_call(C, 
"GPENCIL_OT_editmode_toggle", WM_OP_EXEC_REGION_WIN, NULL);
                                return OPERATOR_FINISHED;
                        }
                        if (mode == OB_MODE_GPENCIL_PAINT) {
+                               ob->restore_mode = ob->mode;
                                WM_operator_name_call(C, 
"GPENCIL_OT_paintmode_toggle", WM_OP_EXEC_REGION_WIN, NULL);
                                return OPERATOR_FINISHED;
                        }
                        if (mode == OB_MODE_GPENCIL_SCULPT) {
+                               ob->restore_mode = ob->mode;
                                WM_operator_name_call(C, 
"GPENCIL_OT_sculptmode_toggle", WM_OP_EXEC_REGION_WIN, NULL);
                                return OPERATOR_FINISHED;
                        }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to