def repaint
      return unless @repaint_required
      r,c = rowcol
      # this should only happen if there's a change in window
      if @row_relative
        @row = Ncurses.LINES+@row_relative
      end
      arr = key_labels()
      print_key_labels(arr, mode=@mode)
      @repaint_required = false
    end
def repaint
      return unless @repaint_required
      r,c = rowcol
      # this should only happen if there's a change in window
      if @row_relative
        @row = Ncurses.LINES+@row_relative
      end
      arr = key_labels()
      print_key_labels(arr, mode=@mode)
      @repaint_required = false
    end
XXX need to move wrapping etc up and done once.