       // Because neovim fills blank space with "Space" and when we enter "Space" we don't get the puts, thus we have to
       // redraw the put position.
       if self.usesLigatures {
-        self.setNeedsDisplay(region: self.grid.regionOfWord(at: self.grid.putPosition))
-        self.setNeedsDisplay(region: self.grid.regionOfWord(at: curScreenCursor))
-        self.setNeedsDisplay(region: self.grid.regionOfWord(at: position))
-        self.setNeedsDisplay(region: self.grid.regionOfWord(at: screenCursor))
+        self.markForRender(region: self.grid.regionOfWord(at: self.grid.putPosition))
+        self.markForRender(region: self.grid.regionOfWord(at: curScreenCursor))
+        self.markForRender(region: self.grid.regionOfWord(at: position))
+        self.markForRender(region: self.grid.regionOfWord(at: screenCursor))
       } else {
-        self.setNeedsDisplay(cellPosition: self.grid.putPosition)
+        self.markForRender(cellPosition: self.grid.putPosition)
         // Redraw where the cursor has been till now, ie remove the current cursor.
-        self.setNeedsDisplay(cellPosition: curScreenCursor)
+        self.markForRender(cellPosition: curScreenCursor)
         if self.grid.isPreviousCellEmpty(curScreenCursor) {
-          self.setNeedsDisplay(cellPosition: self.grid.previousCellPosition(curScreenCursor))
+          self.markForRender(cellPosition: self.grid.previousCellPosition(curScreenCursor))
         }
         if self.grid.isNextCellEmpty(curScreenCursor) {
-          self.setNeedsDisplay(cellPosition: self.grid.nextCellPosition(curScreenCursor))
+          self.markForRender(cellPosition: self.grid.nextCellPosition(curScreenCursor))
         }
-        self.setNeedsDisplay(cellPosition: position)
-        self.setNeedsDisplay(cellPosition: screenCursor)
+        self.markForRender(cellPosition: position)
+        self.markForRender(cellPosition: screenCursor)
       }
 
       self.grid.goto(position)

      let curPos = self.grid.putPosition
      self.grid.putMarkedText(markedText)

      self.setNeedsDisplay(position: curPos)
      // When the cursor is in the command line, then we need this...
      self.setNeedsDisplay(cellPosition: self.grid.nextCellPosition(curPos))
      if markedText.characters.count == 0 {
        self.setNeedsDisplay(position: self.grid.previousCellPosition(curPos))
      }

      self.updateCursorWhenPutting(currentPosition: curPos, screenCursor: screenCursor)


  public func updateBackground(_ bg: Int32) {
    DispatchUtils.gui {
      NSLog("\(#function)")
      self.grid.background = UInt32(bitPattern: bg)
      self.layer?.backgroundColor = ColorUtils.colorIgnoringAlpha(self.grid.background).cgColor
//      NSLog("\(ColorUtils.colorIgnoringAlpha(UInt32(bg)))")
