(Perhaps you can tell that I've been going over the bugs on the wiki....) The problem with the draft animator seems to be a bug on the C side of things. The problem is that the animation code expects to be able to perform a draw operation twice and have the second draw erase the first. Try this in sawfish-client to see what I mean -- this is how the lines are drawn when moving windows:
user> (require 'sawfish.wm.util.x) t user> (x-draw-line 'root (x-create-root-xor-gc) '(5 . 5) '(20 . 20)) t user> (x-draw-line 'root (x-create-root-xor-gc) '(5 . 5) '(20 . 20)) t Choose the coordinates such that no window is covering the root window in that spot; if the upper left of the screen is clear the above should work. The first call to x-draw-line will display a line, the second will erase it. But try it with x-draw-string, which is what's used to display the coordinate info when window animations are set to draft mode: user> (x-draw-string 'root (x-create-root-xor-gc) '(50 . 50) "Foo") t For me, at least, the first time I run this nothing seems to happen. But if I run it several times a "Foo" in the upper left of the screen darkens and becomes black. From the way it's used in sawfish.wm.util.window-outline, it's evidently supposed to behave as the x-draw-line function does, but it doesn't. Tracing through the C code in src/x.c (where these are defined) to figure out what the problem is would be very difficult for me. Can someone with more C knowledge help out? -- Jeremy Hankins <[email protected]>
