BAG 1.0 - a Better ActivateGadget Patch Routine Written by Justin V. McCormick 89-09-26 Placed in the Public Domain - Freely Redistributable Synopsis: --------- BAG (BetterActivateGadget) is a tiny patch for the Intuition ActivateGadget() function. After you install BAG, normal calls to the ActivateGadget() function will be redirected through the new BAG function. This is similar to the way FastFonts improves text output by changing the Graphics library Text() function. Reasons to use BAG: ------------------- With a fast CPU installed you may find that string gadgets act unreliable. This problem is especially noticable with small windows containing string gadgets. Many programs do not provide sufficient delay after a new Window opens before calling ActivateGadget(). This will cause the string gadget to be activated in an unpredictable manner. Theory of Operation: -------------------- BAG modifies the behavior of ActivateGadget() so that up to five tries will be made before aborting the activation request. Between each unsuccessful attempt, a short time delay (i.e., busy wait) occurs, giving Intuition a chance to finish the Window or Requester rendering or refresh and unlock the layers. The boolean return from ActivateGadget() is used to determine when the activation is successful. The operation of the patch function is otherwise identical to the normal ActivateGadget() function, and should be transparent in use. Installation: ------------- BAG should be placed in your C: or other utility directory. BAG can be run from the CLI, Workbench, or launched from your startup-sequence after SetPatch: BAG >NIL: This way you can silently install BAG every time you boot your Amiga. Once BAG is installed, it can be removed by simply running the program again. BAG only consumes 56 bytes of memory when installed and in no way interferes with the normal operation of ActivateGadget(), so you should not need to remove BAG under normal situations. Note: BAG only applies to Kickstart V1.2/1.3, since earlier versions of Intuition did not have the ActivateGadget() function. I welcome discussion, comments, criticism, and code contributions. Give me a call or drop me a line! Justin V. McCormick 8330 E. Quincy Ave., #C-312 Denver, CO 80237 BIX: jmccormick PLINK: JVM VOICE: 303-290-8429