update:
As it turns out, it was because I scaled the child object to z = 0 - c.scale(1,1,0) - scaling to non-zero works just fine
I have a child called c and a parent called p.
I use Python to create a parent-child relation.
Either:
p.select = True
c.select = True
bpy.context.scene.objects.active = p
bpy.ops.object.parent_set(type="OBJECT")
p.select = False
c.select = False
bpy.ops.object.select_all(action='DESELECT')
or simply:
c.parent = p
The parent-child relationship is established, which I can confirm in the Outliner.
If I move p in the 3D View the child c will also move, however I cannot move c - it seems locked to it's position, however when I check the locks in the Properties Editor no locks are active. I can alter the location using the transform properties in the Properties Editor, but I can't move it using the mouse. I can scale and rotate as normal though.
Both p (an empty) and c (a text) is created in Python.
If I do the same manually - create the objects and set their parent relationship, I can move the child in the UI. This is the type of relationship I dream of (one where I can move :P ).
How can I add a parent relationship from Python that lets me move both the parent (with the child following) and the child (on its own) from the UI?
Further observations: The problem seems to be in the object creation process. No matter how I parent objects that are Python-created, I end up with not being able to move the child on it's own. I even tried to use the exact same code line that the UI uses to generate the object.