[BACK]Return to layout.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / tmux

Diff for /src/usr.bin/tmux/layout.c between version 1.32 and 1.33

version 1.32, 2017/03/11 15:16:35 version 1.33, 2017/11/15 19:59:27
Line 983 
Line 983 
         }          }
         notify_window("window-layout-changed", w);          notify_window("window-layout-changed", w);
 }  }
   
   int
   layout_spread_cell(struct window *w, struct layout_cell *parent)
   {
           struct layout_cell      *lc;
           u_int                    number, each, size;
           int                      change, changed;
   
           number = 0;
           TAILQ_FOREACH (lc, &parent->cells, entry)
               number++;
           if (number <= 1)
                   return (0);
   
           if (parent->type == LAYOUT_LEFTRIGHT)
                   size = parent->sx;
           else if (parent->type == LAYOUT_TOPBOTTOM)
                   size = parent->sy;
           else
                   return (0);
           each = (size - (number - 1)) / number;
   
           changed = 0;
           TAILQ_FOREACH (lc, &parent->cells, entry) {
                   if (TAILQ_NEXT(lc, entry) == NULL)
                           each = size - (each * (number - 1));
                   change = 0;
                   if (parent->type == LAYOUT_LEFTRIGHT) {
                           change = each - (int)lc->sx;
                           layout_resize_adjust(w, lc, LAYOUT_LEFTRIGHT, change);
                   } else if (parent->type == LAYOUT_TOPBOTTOM) {
                           change = each - (int)lc->sy;
                           layout_resize_adjust(w, lc, LAYOUT_TOPBOTTOM, change);
                   }
                   if (change != 0)
                           changed = 1;
           }
           return (changed);
   }
   
   void
   layout_spread_out(struct window_pane *wp)
   {
           struct layout_cell      *parent;
           struct window           *w = wp->window;
   
           parent = wp->layout_cell->parent;
           if (parent == NULL)
                   return;
   
           do {
                   if (layout_spread_cell(w, parent)) {
                           layout_fix_offsets(parent);
                           layout_fix_panes(w, w->sx, w->sy);
                           break;
                   }
           } while ((parent = parent->parent) != NULL);
   }

Legend:
Removed from v.1.32  
changed lines
  Added in v.1.33