0
$\begingroup$

This issue has been driving me nuts and if not fixed, makes all my selection add-ons useless.

I've done a TON of testing and found when it occurs.

This is how it works:

When you select any geometry with any select operator(bpy or bmesh) and the code is executed by a custom operator, the redo panel will deselect the geometry selected by the script and only leave one unselected.

enter image description here

As you can see the operator is super bare bones, no junk code, yet the issue still occurs.

To confirm that this is a fault with a custom operator, I selected the edges with the same code, just without the operator. And I didn't run into any issues.

The demo speaks for it self:

enter image description here

I have no idea how this not already a big issue. I haven't seen anybody complain about this. But with this behaviour it tells me that it's a bug. I wish do death that I could fix it, but it seems I can't.

If anybody has any idea what's going on, please share it!

I also wanna note that I have rolled back my Blender to the most vanilla, factory settings possible. No addons are running and I'm using the default keymap.

Here's the code for testing:

import bpy
import bmesh

from bpy.types import Operator

class OT_SELECT_WITH_OPERATOR(Operator):
    bl_idname= "view3d.select_with_operator"
    bl_label = "Select With Operator"

    def execute(self, context):

        print('run')
        obj = bpy.context.edit_object
        me = obj.data
        bm = bmesh.from_edit_mesh(me)

        for e in bm.edges:
            e.select = True

        bmesh.update_edit_mesh(me, True)

        return{'FINISHED'}

def register():
    bpy.utils.register_class(OT_SELECT_WITH_OPERATOR)  

def unregister():
    bpy.utils.unregister_class(OT_SELECT_WITH_OPERATOR)    

if __name__ == "__main__":
    register()
$\endgroup$
  • 1
    $\begingroup$ You might want to convert that comment into an answer, so that others are easily able to identify this as resolved. Not all users read the comments and the question should be closed out properly. $\endgroup$ – Moog Dec 8 '19 at 14:10
0
$\begingroup$

Nevermind, just needed to add: bl_options = {'REGISTER', 'UNDO'} under my operator variables.

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.