public final boolean showOverlay(Region overlay, boolean blocking) {
        LOGGER.trace("showOverlay");
        if (!overlays.containsKey(overlay)) {
            overlays.put(overlay, new WorkbenchOverlay(overlay, new GlassPane()));
        }
        // To prevent showing the same overlay twice
        if (blockingOverlaysShown.contains(overlay) || nonBlockingOverlaysShown.contains(overlay)) {
            return false;
        }
        if (blocking) {
            LOGGER.trace("showOverlay - blocking");
            return blockingOverlaysShown.add(overlay);
        } else {
            LOGGER.trace("showOverlay - non-blocking");
            return nonBlockingOverlaysShown.add(overlay);
        }
    }
Shows the {@code overlay} on top of the view, with a {@link GlassPane} in the background.

@param overlay  to be shown
@param blocking If false (non-blocking), clicking outside of the {@code overlay} will cause it
                to get hidden, together with its {@link GlassPane}. If true (blocking),
                clicking outside of the {@code overlay} will not do anything. The {@code
                overlay} itself must call {@link Workbench#hideOverlay(Region)} to hide it.
@return true if the overlay is not being shown already
workbenchfx-core/src/main/java/com/dlsc/workbenchfx/Workbench.java