GNOME Bugzilla – Bug 637635
set_bounds() on goocanvas.Canvas with large width
Last modified: 2011-09-24 14:05:05 UTC
I have found an issue when setting the bounds of a goocanvas.Canvas object larger than 32,606 pixels wide. It's a difficult bug to reproduce, but it only seems to happen on Ubuntu 10.10, and not the previous version of Ubuntu (10.04). Both of those OSes use libgoocanvas 0.15, so I'm not sure why the behavior would be different. OpenShot Video Editor uses goocanvas to render it's timeline. When the timeline exceeds 32,606 pixels in width, it starts to behave very strange. For example, as you move other goocanvas items around, they disappear, and all goocanvas groups seem to ungroup. As I said, very strange behavior. Any thoughts on how to proceed with a bug like this? Thanks! -Jonathan
You might be hitting the cairo coordinate limits. It used to use 16.16 fixed point coordinates, so you were limited to +-32768. Since 1.6 it uses 24.8 so the limit is larger. (The "Coordinate Spaces and Limits" page of the docs mention this.) What versions of cairo are you linking to?
I have the same bug, i'm using cairo 1.10, goocanvas 0.15 and pygoocanvas 0.14.1.
Actually this might be due to a pixman bug, see bug 625299. Make sure you have pixman 0.19.4 or above.
I have pixman 0.20 ;)
If someone can create a simple test app to reproduce the bug that would be useful.
It looks like this is in fact related to the cairo coordinate limits. I have found many different reports (just googling around) which seem to confirm this behavior. So, for the time being, I am going to fix OpenShot to not exceed the 32,000 limit. Thanks.
I'll mark this as NOTABUG then. Reopen if it happens again.