Re: [cedet-semantic] XEmacs adjustments
Brought to you by:
zappo
From: Eric M. L. <er...@si...> - 2008-11-28 20:06:53
|
>>> Michael Reiher <re...@gm...> seems to think that: >On Thursday 27 November 2008 17:11, Michael Reiher wrote: >> On Wednesday 26 November 2008 22:38, you wrote: >> > >>> Michael Reiher <re...@gm...> seems to think that: >> > > >> > >Then semantic-decoration-include-menu even seems to be called, however >> > >something is wrong about the argument. >> > > >> > >Debugger entered--Lisp error: (wrong-type-argument listp >> > > #<buttondown-event button3>) >> > > semantic-decoration-include-menu(#<buttondown-event button3>) >> > > call-interactively(semantic-decoration-include-menu) >> > >> > [ ... ] >> > >> > In Emacs, the event is a list. Presumably in XEmacs it is some custom >> > lisp object? Is there an API for extracting the window from an event >> > in XEmacs? >> >> I found (event-window EVENT). Using this makes it work. Then however there >> is a problem with the menu definition. The keywords :visible and :help >> don't exist in XEmacs. Removing them makes the menu show up and it mostly >> seems to work even :) >> >> Just actions which require the point to be in the #include line ("What Is >> This?", "Visit This Include" and "Parse This Include") have a little >> problem. I have to move the cursor manually into the #include line, >> otherwise I get errors. I guess that's what (mouse-set-point event) is >> supposed to take care off? So maybe this is an XEmacs bug ... >> >Hmm, the cause for this problem is the save-excursion around mouse-set-point >and popup-menu in e.g. semantic-decoration-include-menu. Or maybe actually >that popup-menu in XEmacs returns right after showing the menu, in contrast >to Emacs where it waits until the user selected an entry (just guessing)? >Anyway, with XEmacs the point position is already restored to the original >position when the user eventually selects an entry => error. > >So AFAICS a solution might be: instead of setting the point right away, just >save the position and set the point to the saved position in the function the >user selected e.g. semantic-decoration-include-describe. > >I tried this and it works fine for me. I attached a patch for illustration >(it's probably far from perfect;). > >NOTE: In the menu definition of semantic-decoration-on-unknown-include-menu >you had a :Help instead of :help. See patch. Howdy, Thanks for pointing this out. I was a little worried about the state your patch had to move around, but it clued me in that the popup-menu wasn't blocking in XEmacs. I made a blocking version and alias for the two Emacsen, and used that. It worked in a XEmacs demo I wrote, but I haven't tested it in Semantic yet. Hopefully what I checked in will do what you need. Eric -- Eric Ludlam: er...@si... Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net |