# File wm.rb, line 472
    def grid! aMaxClientsPerColumn = nil
      # determine client distribution
        unless aMaxClientsPerColumn
          numClients = num_grounded_clients
          return unless numClients > 1

          numColumns = Math.sqrt(numClients)
          aMaxClientsPerColumn = (numClients / numColumns).round
        end

      # distribute the clients
        if aMaxClientsPerColumn <= 0
          # squeeze all clients into a single column
            areaList = self.areas

            (areaList.length - 2).times do
              areaList[1].concat! areaList[2]
            end

        else
          each_column do |a|
            a.length = aMaxClientsPerColumn
            a.mode = :default
          end
        end
    end