public static void modalityChanged(int paramInt, boolean paramBoolean) {
    PerPluginInfo localPerPluginInfo = (PerPluginInfo) pluginInfoMap.get(new Integer(paramInt));
    if (localPerPluginInfo == null) return;
    final AppletID localAppletID = new AppletID(paramInt);
    if (paramBoolean) {
      final int i = localPerPluginInfo.modalityPushed();
      final Plugin localPlugin = localPerPluginInfo.getPlugin();
      localPlugin.invokeLater(
          new Runnable() {
            private final ModalitySupport.PerPluginInfo val$info;
            private final AppletID val$id;
            private final int val$depth;
            private final Plugin val$plugin;

            public void run() {
              if (this.val$info.getPlugin().getActiveJSCounter() > 0) {
                this.val$info.modalityPopped();
                return;
              }
              while ((!JVMManager.getManager().appletExited(localAppletID))
                  && (this.val$info.getModalityDepth() >= i))
                localPlugin.waitForSignalWithModalBlocking();
              localPlugin.notifyMainThread();
            }
          });
    } else {
      localPerPluginInfo.modalityPopped();
    }
  }