home *** CD-ROM | disk | FTP | other *** search
- To: vim_dev@googlegroups.com
- Subject: Patch 7.3.1246
- Fcc: outbox
- From: Bram Moolenaar <Bram@moolenaar.net>
- Mime-Version: 1.0
- Content-Type: text/plain; charset=UTF-8
- Content-Transfer-Encoding: 8bit
- ------------
-
- Patch 7.3.1246
- Problem: When setting 'winfixheight' and resizing the window causes the
- window layout to be wrong.
- Solution: Add frame_check_height() and frame_check_width() (Yukihiro
- Nakadaira)
- Files: src/window.c
-
-
- *** ../vim-7.3.1245/src/window.c 2013-06-16 17:32:33.000000000 +0200
- --- src/window.c 2013-06-26 13:51:25.000000000 +0200
- ***************
- *** 66,71 ****
- --- 66,76 ----
- static int check_snapshot_rec __ARGS((frame_T *sn, frame_T *fr));
- static win_T *restore_snapshot_rec __ARGS((frame_T *sn, frame_T *fr));
-
- + static int frame_check_height __ARGS((frame_T *topfrp, int height));
- + #ifdef FEAT_VERTSPLIT
- + static int frame_check_width __ARGS((frame_T *topfrp, int width));
- + #endif
- +
- #endif /* FEAT_WINDOWS */
-
- static win_T *win_alloc __ARGS((win_T *after, int hidden));
- ***************
- *** 4749,4755 ****
- /* First try setting the heights of windows with 'winfixheight'. If
- * that doesn't result in the right height, forget about that option. */
- frame_new_height(topframe, h, FALSE, TRUE);
- ! if (topframe->fr_height != h)
- frame_new_height(topframe, h, FALSE, FALSE);
-
- (void)win_comp_pos(); /* recompute w_winrow and w_wincol */
- --- 4754,4760 ----
- /* First try setting the heights of windows with 'winfixheight'. If
- * that doesn't result in the right height, forget about that option. */
- frame_new_height(topframe, h, FALSE, TRUE);
- ! if (!frame_check_height(topframe, h))
- frame_new_height(topframe, h, FALSE, FALSE);
-
- (void)win_comp_pos(); /* recompute w_winrow and w_wincol */
- ***************
- *** 4783,4789 ****
- /* First try setting the widths of windows with 'winfixwidth'. If that
- * doesn't result in the right width, forget about that option. */
- frame_new_width(topframe, (int)Columns, FALSE, TRUE);
- ! if (topframe->fr_width != Columns)
- frame_new_width(topframe, (int)Columns, FALSE, FALSE);
-
- (void)win_comp_pos(); /* recompute w_winrow and w_wincol */
- --- 4788,4794 ----
- /* First try setting the widths of windows with 'winfixwidth'. If that
- * doesn't result in the right width, forget about that option. */
- frame_new_width(topframe, (int)Columns, FALSE, TRUE);
- ! if (!frame_check_width(topframe, Columns))
- frame_new_width(topframe, (int)Columns, FALSE, FALSE);
-
- (void)win_comp_pos(); /* recompute w_winrow and w_wincol */
- ***************
- *** 6922,6924 ****
- --- 6927,6974 ----
- return i;
- }
- #endif
- +
- + /*
- + * Return TRUE if "topfrp" and its children are at the right height.
- + */
- + static int
- + frame_check_height(topfrp, height)
- + frame_T *topfrp;
- + int height;
- + {
- + frame_T *frp;
- +
- + if (topfrp->fr_height != height)
- + return FALSE;
- +
- + if (topfrp->fr_layout == FR_ROW)
- + for (frp = topfrp->fr_child; frp != NULL; frp = frp->fr_next)
- + if (frp->fr_height != height)
- + return FALSE;
- +
- + return TRUE;
- + }
- +
- + #ifdef FEAT_VERTSPLIT
- + /*
- + * Return TRUE if "topfrp" and its children are at the right width.
- + */
- + static int
- + frame_check_width(topfrp, width)
- + frame_T *topfrp;
- + int width;
- + {
- + frame_T *frp;
- +
- + if (topfrp->fr_width != width)
- + return FALSE;
- +
- + if (topfrp->fr_layout == FR_COL)
- + for (frp = topfrp->fr_child; frp != NULL; frp = frp->fr_next)
- + if (frp->fr_width != width)
- + return FALSE;
- +
- + return TRUE;
- + }
- + #endif
- +
- *** ../vim-7.3.1245/src/version.c 2013-06-26 13:16:13.000000000 +0200
- --- src/version.c 2013-06-26 13:47:56.000000000 +0200
- ***************
- *** 730,731 ****
- --- 730,733 ----
- { /* Add new patch number below this line */
- + /**/
- + 1246,
- /**/
-
- --
- Back up my hard drive? I can't find the reverse switch!
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
- /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
- \\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-