code: public static void pushInputMap(Node node, InputMap<?> im) {
          // store currently installed im; getInputMap calls init
          InputMap<?> previousInputMap = getInputMap(node);
          getStack(node).push(previousInputMap);
  
          // completely override the previous one with the given one
          setInputMapUnsafe(node, im);
      }
docs: Removes the currently installed {@link InputMap} (InputMap1) on the given node and installs the {@code im}
  (InputMap2) in its place. When finished, InputMap2 can be uninstalled and InputMap1 reinstalled via
  {@link #popInputMap(Node)}. Multiple InputMaps can be installed so that InputMap(n) will be installed over
  InputMap(n-1)