Page MenuHome

Viewing material calls frame update routine (bpy.app.handlers.frame_change_post)
Closed, ResolvedPublic

Description

System Information
Operating system: Linux-4.15.0-50-generic-x86_64-with-debian-stretch-sid 64 Bits
Graphics card: GeForce GTX 1060 6GB/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 384.130

Blender Version
Broken: version: 2.80 (sub 71), branch: blender2.7, commit date: 2019-05-22 21:50, hash: rBa1ad71304c2d

Short description of error
Summary: Viewing material in Blender Properties Editor causes call to frame update Python hook. I assume this is bug, since frames and materials are separate things.

A nodes related add-on I'm working on gets stuck on infinite loop when viewing Material Tab in Properties Editor. This seems to be due to the fact that clicking on Material Tab in Properties Editor (something in there) causes a call to bpy.app.handlers.frame_change_post. This triggering is shown by the attached blend file. My add-on is caught on a loop when it regenerates the material during call to frame_change_post.

Exact steps for others to reproduce the error

  • in terminal: blender --factory-startup
  • open attached blend file
  • click "Run Script" to register module
  • click on Material tab in Properties Editor
  • text in terminal indicates that frame_change_post is called
  • Also I noticed that call to frame_change_post happens also when in Material tab top click on "Brose Material" and then select the material.

Attached blend file which demonstrates the issue

Event Timeline

Attached blend file which demonstrates the issue

Tuomo Keskitalo (tkeskita) updated the task description. (Show Details)
Tuomo Keskitalo (tkeskita) renamed this task from Viewing material causes unexpected call to bpy.app.handlers.frame_change_post to Viewing material calls frame update routine (bpy.app.handlers.frame_change_post).
Sebastian Parborg (zeddb) triaged this task as Confirmed, Medium priority.

I'm guessing this might be because of the preview window in the material tab. It seem to trigger the change_post function when switching preview objects too.