[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: balloon help flickers, why ??



>I've implemented a key-handler that allows to switch on and off ballons (as
>I find annoying to go back and forth to the menu, 'kind of bit lazy :-)
>
>The called function is something like :
>
>(defun switch-balloons ()
>        (set-help (not (help-on?)))
> )
>
>No problem, it works but... not so fine as when I activate by keys and I
>would to switch it off by menu, nothing happens. After messing up a while
>between key activation/deactivation and menu activation/deactivation the
>balloon begins to really flickers before actually displaying the
>help-string.
>
>Is it a known bug or should I do something special ?

Not a known bug. Easy to reproduce. Seems like a bug in the Help Manager
to me. I couldn't figure out anything to prevent it from happenning by
reading Inside Macintosh and playing around a little bit. I DID find that
SET-HELP as defined tends to leave up balloons that were put up by the
system when it turns help off. The enclosed new definition is a little
better, though it still leaves a balloon that won't go away sometimes.
I also noticed that sometimes selecting "Hide Baloons" from the help
menu didn't hide the balloons, even though it made (#_HMGetBalloons)
return NIL. Very strange.

New definition for SET-HELP in "ccl:library;help-manager.lisp":

(defun set-help (boolean)
  (when *help-manager-present*
    (without-interrupts
     (when (null boolean) 
       (#_hmremoveballoon)
       (setq *view-with-balloon* nil))
     (#_hmsetballoons boolean))))