setContext = elem => {
  const dataStorage = svgCanvas.getDataStorage()
  leaveContext()
  if (typeof elem === 'string') {
    elem = getElement(elem)
  }

  // Edit inside this group
  svgCanvas.setCurrentGroup(elem)

  // Disable other elements
  const parentsUntil = getParentsUntil(elem, '#svgcontent')
  const siblings = []
  parentsUntil.forEach(function (parent) {
    const elements = Array.prototype.filter.call(
      parent.parentNode.children,
      function (child) {
        return child !== parent
      }
    )
    elements.forEach(function (element) {
      siblings.push(element)
    })
  })

  siblings.forEach(function (curthis) {
    const opac = curthis.getAttribute('opacity') || 1
    // Store the original's opacity
    dataStorage.put(curthis, 'orig_opac', opac)
    curthis.setAttribute('opacity', opac * 0.33)
    curthis.setAttribute('style', 'pointer-events: none')
    disabledElems.push(curthis)
  })
  svgCanvas.clearSelection()
  svgCanvas.call('contextset', svgCanvas.getCurrentGroup())
}
Set the current context (for in-group editing).
@function module:draw.setContext
@param {Element} elem
@fires module:svgcanvas.SvgCanvas#event:contextset
@returns {void}