 
       if self.usesLigatures {
         if string == " " {
-          self.setNeedsDisplay(cellPosition: curPos)
+          self.markForRender(cellPosition: curPos)
         } else {
-          self.setNeedsDisplay(region: self.grid.regionOfWord(at: curPos))
+          self.markForRender(region: self.grid.regionOfWord(at: curPos))
         }
       } else {
-        self.setNeedsDisplay(cellPosition: curPos)
+        self.markForRender(cellPosition: curPos)
       }
 
       self.updateCursorWhenPutting(currentPosition: curPos, screenCursor: screenCursor)

    DispatchUtils.gui {
      let region = Region(top: Int(top), bottom: Int(bottom), left: Int(left), right: Int(right))
      self.grid.setScrollRegion(region)
      self.setNeedsDisplay(region: region)
    }
  }

  public func scroll(_ count: Int32) {
    DispatchUtils.gui {
      self.grid.scroll(Int(count))
      self.setNeedsDisplay(region: self.grid.region)
      // Do not send msgs to agent -> neovim in the delegate method. It causes spinning when you're opening a file with
      // existing swap file.
      self.delegate?.scroll()

//      NSLog("\(#function): \(position)")

      self.grid.unmarkCell(position)
      self.markForRender(position: position)

      self.markForRender(screenCursor: self.grid.screenCursor)
    }
  }

