diff --git a/7.2.099 b/7.2.099 new file mode 100644 index 0000000..6f5dae5 --- /dev/null +++ b/7.2.099 @@ -0,0 +1,127 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.099 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.099 +Problem: Changing GUI options causes an unnecessary redraw when the GUI + isn't active. +Solution: Avoid the redraw. (Lech Lorens) +Files: src/option.c + + +*** ../vim-7.2.098/src/option.c Wed Dec 24 12:53:33 2008 +--- src/option.c Wed Feb 4 16:59:56 2009 +*************** +*** 5407,5412 **** +--- 5407,5416 ---- + int did_chartab = FALSE; + char_u **gvarp; + long_u free_oldval = (options[opt_idx].flags & P_ALLOCED); ++ #ifdef FEAT_GUI ++ /* set when changing an option that only requires a redraw in the GUI */ ++ int redraw_gui_only = FALSE; ++ #endif + + /* Get the global option to compare with, otherwise we would have to check + * two values for all local options. */ +*************** +*** 6055,6060 **** +--- 6059,6065 ---- + errmsg = (char_u *)N_("E596: Invalid font(s)"); + } + } ++ redraw_gui_only = TRUE; + } + # ifdef FEAT_XFONTSET + else if (varp == &p_guifontset) +*************** +*** 6063,6068 **** +--- 6068,6074 ---- + errmsg = (char_u *)N_("E597: can't select fontset"); + else if (gui.in_use && gui_init_font(p_guifontset, TRUE) != OK) + errmsg = (char_u *)N_("E598: Invalid fontset"); ++ redraw_gui_only = TRUE; + } + # endif + # ifdef FEAT_MBYTE +*************** +*** 6072,6077 **** +--- 6078,6084 ---- + errmsg = (char_u *)N_("E533: can't select wide font"); + else if (gui_get_wide_font() == FAIL) + errmsg = (char_u *)N_("E534: Invalid wide font"); ++ redraw_gui_only = TRUE; + } + # endif + #endif +*************** +*** 6133,6145 **** +--- 6140,6163 ---- + #ifdef FEAT_GUI + /* 'guioptions' */ + else if (varp == &p_go) ++ { + gui_init_which_components(oldval); ++ redraw_gui_only = TRUE; ++ } + #endif + + #if defined(FEAT_GUI_TABLINE) + /* 'guitablabel' */ + else if (varp == &p_gtl) ++ { + redraw_tabline = TRUE; ++ redraw_gui_only = TRUE; ++ } ++ /* 'guitabtooltip' */ ++ else if (varp == &p_gtt) ++ { ++ redraw_gui_only = TRUE; ++ } + #endif + + #if defined(FEAT_MOUSE_TTY) && (defined(UNIX) || defined(VMS)) +*************** +*** 6717,6723 **** + + if (curwin->w_curswant != MAXCOL) + curwin->w_set_curswant = TRUE; /* in case 'showbreak' changed */ +! check_redraw(options[opt_idx].flags); + + return errmsg; + } +--- 6735,6745 ---- + + if (curwin->w_curswant != MAXCOL) + curwin->w_set_curswant = TRUE; /* in case 'showbreak' changed */ +! #ifdef FEAT_GUI +! /* check redraw when it's not a GUI option or the GUI is active. */ +! if (!redraw_gui_only || gui.in_use) +! #endif +! check_redraw(options[opt_idx].flags); + + return errmsg; + } +*** ../vim-7.2.098/src/version.c Wed Feb 4 16:25:53 2009 +--- src/version.c Wed Feb 4 17:24:11 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 99, + /**/ + +-- +I started out with nothing, and I still have most of it. + -- Michael Davis -- "Tonight Show" + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org ///