0 Replies Latest reply on Oct 18, 2012 2:55 PM by Russ Ward

    How to reliably close a palette window

    Russ Ward Level 4



      I'm trying to figure out how to positively close a palette window that has both an X in the upper right corner and a Close button. The reason is that I want to use the Window.find() method to determine if the window already exists when someone attempts to launch it, such that duplicate palettes cannot be produced, for example


      var graphicUtilsDlg = Window.find ("palette", "My Graphic Utilities");

      if(graphicUtilsDlg != null) return;


      So, I define this palette as graphicUtilsDlg, but before I do, I call the method above to see if a current instance exists.


      On the palette, I have a Close button tied to the following callback:


      graphicUtilsDlg.closeBtn.onClick = function()



          graphicUtilsDlg = null;



      ...and the following callback which is invoked by the close() method above and also when the X is clicked:


      graphicUtilsDlg.onClose = function()


          graphicUtilsDlg = null;



      It works fine when I click the Close button. The window closes and the next attempt to open it works normally. However, it does not work properly when I click the X button. It takes two attempts before the window opens again. Somehow, the find() method is returning an object the first time, but not the second time.


      Anyway, I know this is a bit windy and complex, but does anyone have any expertise here?