From csr21 at cam.ac.uk Sun Aug 14 11:40:57 2005 From: csr21 at cam.ac.uk (Christophe Rhodes) Date: Sun, 14 Aug 2005 12:40:57 +0100 Subject: [gsharp-devel] replaying beams Message-ID: Hi, Eagle-eyed users of gsharp CVS (i.e. Robert :-) have spotted that replaying beam output records doesn't quite generate the same output as redrawing them. To see this, enter beamed quavers G (a fifth above middle C) and middle C, obscure the window, bring it to the front, and then move the gsharp cursor: the beam will change weight. While investigating this, I found a rather more drastic example: after those, enter middle C and then the G above (to get an upward-sloping-beam rather than a downward-sloping one), and perform the same operation -- the glitch will be much, much more obvious :-) So there are two bugs. I'm happy about my fix to the second one, which was simply a failure to obey CLIM's bounding-rectangle protocol (we were generating a bounding rectangle with y2 < y1). The fix for the first one, also included, is perhaps a little more invasive than I'd like, but basically boils down to the fact that the system is confused over whether the glyphs are light or not. I don't actually know what is in the medium-ink, if it's not +black+, but adding an explicit light-glyph-p slot for the output-record fixes the replay glitches. Patch attached. (I'm getting good at removing one-pixel discrepancies...) -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: beam-replaying.diff URL: -------------- next part -------------- Cheers, Christophe