From csr21 at cam.ac.uk Fri Sep 2 09:52:28 2005 From: csr21 at cam.ac.uk (Christophe Rhodes) Date: Fri, 02 Sep 2005 10:52:28 +0100 Subject: [gsharp-devel] per-pane command-tables Message-ID: Hi, I tried this morning to restore lyrics editing functionality, but I think it turns out to be harder than I thought. The way I understand it to be meant to work is to set the command-table of the pane; probably in the :after method in SELECT-LAYER. So, I did that, but it still doesn't work. The reason it doesn't work, I think, is that the input context established in ESA-TOP-LEVEL isn't actually left by ordinary execution of commands -- only by running commands with mouse gestures (with, say, presentation-to-command-translators). So, the attached patch (with included debugging FORMAT code) doesn't actually do the right thing. (It /does/ work if, after selecting a lyrics layer, the user types C-g, because there the with-input-context _is_ reestablished.) What's the right answer? -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: lyrics.diff URL: -------------- next part -------------- Cheers, Christophe From csr21 at cam.ac.uk Fri Sep 2 10:33:43 2005 From: csr21 at cam.ac.uk (Christophe Rhodes) Date: Fri, 02 Sep 2005 11:33:43 +0100 Subject: [gsharp-devel] per-pane command-tables In-Reply-To: (Christophe Rhodes's message of "Fri, 02 Sep 2005 10:52:28 +0100") References: Message-ID: Christophe Rhodes writes: > I tried this morning to restore lyrics editing functionality, but I > think it turns out to be harder than I thought. I forgot to mention... one other way in which this is harder than I thought is that there is a lurking bug somewhere in McCLIM's X backend to do with pixmaps and input focus -- I think something is trying to set an input focus to an #, which is not an acceptable type for focus: (OR (MEMBER :POINTER-ROOT :NONE) XLIB:WINDOW). It's quite easy to trigger this; bringing up a completion window or a menu over drawn areas of the score will give you this message, and unfortunately the only solution to that error is to exit climacs and destroy the clim port (with something like (clim:destroy-port (car climi::*all-ports*))). Hey ho, Christophe