Loading ...
Sorry, an error occurred while loading the content.

Patch 7.3.1220

Expand Messages
  • Bram Moolenaar
    Patch 7.3.1220 Problem: MS-Windows: When using wide font italic and bold are not included. Solution: Support wide-bold, wide-italic and wide-bold-italic.
    Message 1 of 1 , Jun 17, 2013
    • 0 Attachment
      Patch 7.3.1220
      Problem: MS-Windows: When using wide font italic and bold are not included.
      Solution: Support wide-bold, wide-italic and wide-bold-italic. (Ken Takata,
      Taro Muraoka)
      Files: src/gui.c, src/gui.h, src/gui_w48.c


      *** ../vim-7.3.1219/src/gui.c 2013-06-12 20:35:46.000000000 +0200
      --- src/gui.c 2013-06-17 22:22:49.000000000 +0200
      ***************
      *** 410,415 ****
      --- 410,423 ----
      gui.fontset = NOFONTSET;
      # endif
      #endif
      + #ifdef FEAT_MBYTE
      + gui.wide_font = NOFONT;
      + # ifndef FEAT_GUI_GTK
      + gui.wide_bold_font = NOFONT;
      + gui.wide_ital_font = NOFONT;
      + gui.wide_boldital_font = NOFONT;
      + # endif
      + #endif

      #ifdef FEAT_MENU
      # ifndef FEAT_GUI_GTK
      ***************
      *** 1012,1017 ****
      --- 1020,1030 ----
      gui.wide_font = font;
      # ifdef FEAT_GUI_MSWIN
      gui_mch_wide_font_changed();
      + # else
      + /*
      + * TODO: setup wide_bold_font, wide_ital_font and wide_boldital_font to
      + * support those fonts for 'guifontwide'.
      + */
      # endif
      return OK;
      }
      ***************
      *** 2180,2185 ****
      --- 2193,2201 ----
      guicolor_T sp_color;
      #if !defined(MSWIN16_FASTTEXT) && !defined(FEAT_GUI_GTK)
      GuiFont font = NOFONT;
      + # ifdef FEAT_MBYTE
      + GuiFont wide_font = NOFONT;
      + # endif
      # ifdef FEAT_XFONTSET
      GuiFontset fontset = NOFONTSET;
      # endif
      ***************
      *** 2269,2274 ****
      --- 2285,2307 ----
      }
      else
      font = gui.norm_font;
      +
      + # ifdef FEAT_MBYTE
      + /*
      + * Choose correct wide_font by font. wide_font should be set with font
      + * at same time in above block. But it will make many "ifdef" nasty
      + * blocks. So we do it here.
      + */
      + if (font == gui.boldital_font && gui.wide_boldital_font)
      + wide_font = gui.wide_boldital_font;
      + else if (font == gui.bold_font && gui.wide_bold_font)
      + wide_font = gui.wide_bold_font;
      + else if (font == gui.ital_font && gui.wide_ital_font)
      + wide_font = gui.wide_ital_font;
      + else if (font == gui.norm_font && gui.wide_font)
      + wide_font = gui.wide_font;
      + # endif
      +
      }
      # ifdef FEAT_XFONTSET
      if (fontset != NOFONTSET)
      ***************
      *** 2407,2413 ****
      # ifdef FEAT_XFONTSET
      && fontset == NOFONTSET
      # endif
      ! && gui.wide_font != NOFONT)
      curr_wide = TRUE;
      else
      curr_wide = FALSE;
      --- 2440,2446 ----
      # ifdef FEAT_XFONTSET
      && fontset == NOFONTSET
      # endif
      ! && wide_font != NOFONT)
      curr_wide = TRUE;
      else
      curr_wide = FALSE;
      ***************
      *** 2441,2447 ****
      if (thislen > 0)
      {
      if (prev_wide)
      ! gui_mch_set_font(gui.wide_font);
      gui_mch_draw_string(gui.row, scol, s + start, thislen,
      draw_flags);
      if (prev_wide)
      --- 2474,2480 ----
      if (thislen > 0)
      {
      if (prev_wide)
      ! gui_mch_set_font(wide_font);
      gui_mch_draw_string(gui.row, scol, s + start, thislen,
      draw_flags);
      if (prev_wide)
      *** ../vim-7.3.1219/src/gui.h 2013-01-23 13:40:54.000000000 +0100
      --- src/gui.h 2013-06-17 22:22:49.000000000 +0200
      ***************
      *** 311,317 ****
      # endif
      #endif
      #ifdef FEAT_MBYTE
      ! GuiFont wide_font; /* 'guifontwide' font */
      #endif
      #ifdef FEAT_XFONTSET
      GuiFontset fontset; /* set of fonts for multi-byte chars */
      --- 311,322 ----
      # endif
      #endif
      #ifdef FEAT_MBYTE
      ! GuiFont wide_font; /* Normal 'guifontwide' font */
      ! # ifndef FEAT_GUI_GTK
      ! GuiFont wide_bold_font; /* Bold 'guifontwide' font */
      ! GuiFont wide_ital_font; /* Italic 'guifontwide' font */
      ! GuiFont wide_boldital_font; /* Bold-Italic 'guifontwide' font */
      ! # endif
      #endif
      #ifdef FEAT_XFONTSET
      GuiFontset fontset; /* set of fonts for multi-byte chars */
      *** ../vim-7.3.1219/src/gui_w48.c 2013-05-06 04:21:35.000000000 +0200
      --- src/gui_w48.c 2013-06-17 22:22:49.000000000 +0200
      ***************
      *** 3123,3131 ****
      --- 3123,3165 ----
      void
      gui_mch_wide_font_changed()
      {
      + # ifndef MSWIN16_FASTTEXT
      + LOGFONT lf;
      + # endif
      +
      # ifdef FEAT_MBYTE_IME
      update_im_font();
      # endif
      +
      + # ifndef MSWIN16_FASTTEXT
      + gui_mch_free_font(gui.wide_ital_font);
      + gui.wide_ital_font = NOFONT;
      + gui_mch_free_font(gui.wide_bold_font);
      + gui.wide_bold_font = NOFONT;
      + gui_mch_free_font(gui.wide_boldital_font);
      + gui.wide_boldital_font = NOFONT;
      +
      + if (gui.wide_font
      + && GetObject((HFONT)gui.wide_font, sizeof(lf), &lf))
      + {
      + if (!lf.lfItalic)
      + {
      + lf.lfItalic = TRUE;
      + gui.wide_ital_font = get_font_handle(&lf);
      + lf.lfItalic = FALSE;
      + }
      + if (lf.lfWeight < FW_BOLD)
      + {
      + lf.lfWeight = FW_BOLD;
      + gui.wide_bold_font = get_font_handle(&lf);
      + if (!lf.lfItalic)
      + {
      + lf.lfItalic = TRUE;
      + gui.wide_boldital_font = get_font_handle(&lf);
      + }
      + }
      + }
      + # endif
      }
      #endif

      *** ../vim-7.3.1219/src/version.c 2013-06-17 22:04:34.000000000 +0200
      --- src/version.c 2013-06-17 22:24:18.000000000 +0200
      ***************
      *** 730,731 ****
      --- 730,733 ----
      { /* Add new patch number below this line */
      + /**/
      + 1220,
      /**/

      --
      hundred-and-one symptoms of being an internet addict:
      243. You unsuccessfully try to download a pizza from www.dominos.com.

      /// Bram Moolenaar -- Bram@... -- 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 ///

      --
      --
      You received this message from the "vim_dev" maillist.
      Do not top-post! Type your reply below the text you are replying to.
      For more information, visit http://www.vim.org/maillist.php

      ---
      You received this message because you are subscribed to the Google Groups "vim_dev" group.
      To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscribe@....
      For more options, visit https://groups.google.com/groups/opt_out.
    Your message has been successfully submitted and would be delivered to recipients shortly.