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

Re: Vim60ap patch: Athena & Motif "Menu" highlight group fix

Expand Messages
  • David Harrison
    ... I have never had it working entirely. I suspect this has to do with the fact that Asian locales weren t supported very well under my version of Linux
    Message 1 of 12 , Aug 1 6:03 AM
    • 0 Attachment
      Bram Moolenaar wrote:

      > David Harrison wrote:
      >
      >
      >> Problem: Trying to set the "font" parameter of the "Menu" highlight
      >> group while the 'guifontset' option was set resulted in a crash, because
      >> the Menu highlight group only stores a single XFontStruct and NOT an
      >> XFontSet.
      >>
      >> Solution: Force the "Menu" highlight group to always use a single font
      >> and not an XFontSet.
      >
      >
      > I suppose this means Asian languages cannot be used in the menus, unless set
      > from a resource file. That's disappointing, I thought this was currently
      > working.

      I have never had it working entirely. I suspect this has to do with the
      fact that Asian locales weren't supported very well under my version of
      Linux (RedHat 6.2).

      Maybe now that I have access to RedHat 7.1, this may change things.


      > I thought the plan was to use a fontset for everything. Thus make the choice
      > at compile time, not at runtime. Is that too difficult to implement now?

      No. It may just take some time (a month or two?) to work all of the
      tiny bugs out, that's all. For example, when you set the (what should
      be a) fontset for a menu, does it take the current locale as the locale
      to use, or should you be able to specify a specific locale to use? If
      it is the former, then that means that if you want to have the menu be
      in a different locale, you have to set the :language before you source
      menu.vim, and then set it back immediately afterwards.

      Can of worms?

      > I
      > thought that using the fontset was in place already.

      Only if you compile with EXPERIMENTAL #defined.

      Would you like for me to try something out shortly and send it in?

      --David Jr.
    • Martin Dalecki
      ... Well at least for non multibyte locales with a default font set differnt from iso8859-1 I can sort testing out for you quite easly ;-).
      Message 2 of 12 , Aug 1 6:35 AM
      • 0 Attachment
        David Harrison wrote:
        >
        > Bram Moolenaar wrote:
        >
        > > David Harrison wrote:
        > >
        > >
        > >> Problem: Trying to set the "font" parameter of the "Menu" highlight
        > >> group while the 'guifontset' option was set resulted in a crash, because
        > >> the Menu highlight group only stores a single XFontStruct and NOT an
        > >> XFontSet.
        > >>
        > >> Solution: Force the "Menu" highlight group to always use a single font
        > >> and not an XFontSet.
        > >
        > >
        > > I suppose this means Asian languages cannot be used in the menus, unless set
        > > from a resource file. That's disappointing, I thought this was currently
        > > working.
        >
        > I have never had it working entirely. I suspect this has to do with the
        > fact that Asian locales weren't supported very well under my version of
        > Linux (RedHat 6.2).
        >
        > Maybe now that I have access to RedHat 7.1, this may change things.
        >
        > > I thought the plan was to use a fontset for everything. Thus make the choice
        > > at compile time, not at runtime. Is that too difficult to implement now?
        >
        > No. It may just take some time (a month or two?) to work all of the
        > tiny bugs out, that's all. For example, when you set the (what should
        > be a) fontset for a menu, does it take the current locale as the locale
        > to use, or should you be able to specify a specific locale to use? If
        > it is the former, then that means that if you want to have the menu be
        > in a different locale, you have to set the :language before you source
        > menu.vim, and then set it back immediately afterwards.

        Well at least for non multibyte locales with a default font set
        differnt from iso8859-1 I can sort testing out for you quite easly ;-).
      • David Harrison
        ... Thank you! ... and now for my Earth-shattering question: Is there a difference between using a single font and a font set for non-multibyte locales? If
        Message 3 of 12 , Aug 1 7:02 AM
        • 0 Attachment
          Martin Dalecki wrote:

          > David Harrison wrote:
          >
          >> No. It may just take some time (a month or two?) to work all of the
          >> tiny bugs out, that's all. For example, when you set the (what should
          >> be a) fontset for a menu, does it take the current locale as the locale
          >> to use, or should you be able to specify a specific locale to use? If
          >> it is the former, then that means that if you want to have the menu be
          >> in a different locale, you have to set the :language before you source
          >> menu.vim, and then set it back immediately afterwards.
          >
          >
          > Well at least for non multibyte locales with a default font set
          > differnt from iso8859-1 I can sort testing out for you quite easly ;-).

          Thank you!
          ... and now for my Earth-shattering question: Is there a difference
          between using a single font and a font set for non-multibyte locales?

          If no, then using a single font should be okay for Vim 6.0. :-)

          Any mulibyte users out there need to speak up if they desire their menus
          to be in their preferred locale!

          --David Harrison Jr.
        • Bram Moolenaar
          ... We both aim for stability and to fix all problems. In this case we might attempt to fix the problem, unless we can t do that in a couple of weeks (so that
          Message 4 of 12 , Aug 1 9:04 AM
          • 0 Attachment
            David Harrison wrote:

            > The only reason I haven't done it yet is that I have little time at the
            > moment. Add to that the fact that Vim 6.0 is now in BETA and I don't
            > wish to create any more instability in the code base.

            We both aim for stability and to fix all problems. In this case we might
            attempt to fix the problem, unless we can't do that in a couple of weeks (so
            that there is still time to test the result).

            > It pretty much all keys on the 'guifontset' option; if it is set, then a
            > font name is treated as a font set, otherwise a font struct.

            We could change that. In fact, I never liked it. It was a result of adding
            fontset support without the courage to change the existing fonts. The main
            difference that will remain is that 'guifont' is a list of alternate fonts,
            while 'guifontset' is a list of fonts to be used together. But we can drop
            the use of this to use a fontset internally or not. We might have been
            causing ourselves trouble by keeping the support for the fontstruct.

            Another thing is wheter we want to do it the same way for Athena and Motif.
            But I thought that fontset support is in the generic library, thus they could
            both be the same, right?

            > Last but not least, add to the fact that my RedHat 6.2 didn't seem to have
            > extensive locale support (esp. Asian locales, which I think is the main
            > reason for XFontSet), thus testing was difficult.

            Getting a good setup to do testing might indeed be difficult. But with a bit
            of help from our friends we should manage...

            > No one has yet complained about the lack of FontSet support in the
            > menus, so probably no real harm done.

            I did get a few requests for it. Don't forget that the people that would like
            to use this, often have trouble writing English, thus tend to keep their mouth
            shut.

            > I AM going to fix this in 6.1.
            >
            > By the way, in the Athena version I DO treat all the tooltips as an
            > XFontSet, which is my "test case".

            It almost looks like we have all the stuff in place to make the switch, or is
            there still some place where using a fontset will require adding new code?

            > [next message]
            >
            > > I thought the plan was to use a fontset for everything. Thus make the
            > > choice at compile time, not at runtime. Is that too difficult to
            > > implement now?
            >
            > No. It may just take some time (a month or two?) to work all of the
            > tiny bugs out, that's all. For example, when you set the (what should
            > be a) fontset for a menu, does it take the current locale as the locale
            > to use, or should you be able to specify a specific locale to use? If
            > it is the former, then that means that if you want to have the menu be
            > in a different locale, you have to set the :language before you source
            > menu.vim, and then set it back immediately afterwards.

            By default the current locale should be used. That's how it has always
            worked. If possible, we would like to allow setting the encoding with ":lang"
            and the 'encoding' option, and make the menus work with that. But restricting
            this to have it only work when Vim is starting up isn't too bad.

            > Can of worms?

            If that's true we better leave it alone.

            > > I thought that using the fontset was in place already.
            >
            > Only if you compile with EXPERIMENTAL #defined.
            >
            > Would you like for me to try something out shortly and send it in?

            Perhaps what we can do is use a FONTSET_ALWAYS define to add the code for
            this. At first to see if we run into trouble when implementing it. Then we
            can enable it by default to let people test it. When we run into too much
            trouble we can undefine it to fall back to the old code. Does that sound
            reasonable?

            --
            From "know your smileys":
            :-| :-| Deja' vu!

            /// Bram Moolenaar -- Bram@... -- http://www.moolenaar.net \\\
            ((( Creator of Vim -- http://vim.sf.net -- ftp://ftp.vim.org/pub/vim )))
            \\\ Help me helping AIDS orphans in Uganda - http://iccf-holland.org ///
          • Martin Dalecki
            ... Right. I agree fully. And then please take note as well that the documentation about what to use how is indeed very confusing. At least it was to me last
            Message 5 of 12 , Aug 1 9:50 AM
            • 0 Attachment
              Bram Moolenaar wrote:

              > > It pretty much all keys on the 'guifontset' option; if it is set, then a
              > > font name is treated as a font set, otherwise a font struct.
              >
              > We could change that. In fact, I never liked it. It was a result of adding
              > fontset support without the courage to change the existing fonts. The main
              > difference that will remain is that 'guifont' is a list of alternate fonts,
              > while 'guifontset' is a list of fonts to be used together. But we can drop
              > the use of this to use a fontset internally or not. We might have been
              > causing ourselves trouble by keeping the support for the fontstruct.

              Right. I agree fully. And then please take note as well that the
              documentation about what to use how is indeed very confusing. At least
              it
              was to me last time I looked at 5.7 times.

              > Another thing is wheter we want to do it the same way for Athena and Motif.
              > But I thought that fontset support is in the generic library, thus they could
              > both be the same, right?

              Yes they are completely identical if you disrespect the Motif font-list
              stuff,
              which got introduced into Motif a very long time ago to circumvent
              fontstruct
              problems. This was done there at times where X11 didn't support font
              sets.
              But as I have already stated it this is really really a very long time
              ago.

              > > Last but not least, add to the fact that my RedHat 6.2 didn't seem to have
              > > extensive locale support (esp. Asian locales, which I think is the main
              > > reason for XFontSet), thus testing was difficult.
              >
              > Getting a good setup to do testing might indeed be difficult. But with a bit
              > of help from our friends we should manage...

              Hah! Even I managed once to get a proper tawanses input method setup.
              You will have to look at some of the asian linux variants to get it
              right.
              (Or just look at redhat-7.1-jp RPM's)

              > Perhaps what we can do is use a FONTSET_ALWAYS define to add the code for
              > this. At first to see if we run into trouble when implementing it. Then we
              > can enable it by default to let people test it. When we run into too much
              > trouble we can undefine it to fall back to the old code. Does that sound
              > reasonable?

              Perhaps we make just a test ballon beta version with the code removed.
              (It's a matter of patch -r to readd this stuff) and leave it that way
              if nobody complains - I would suggest.
            • David Harrison
              ... Yes. I ll use an XFontSet type (from the X11 library). For Motif, I ll just create an XmFontList from that, while for Athena there would be nothing
              Message 6 of 12 , Aug 1 10:28 AM
              • 0 Attachment
                Bram Moolenaar wrote:

                > David Harrison wrote:

                >
                > Another thing is wheter we want to do it the same way for Athena and Motif.
                > But I thought that fontset support is in the generic library, thus they could
                > both be the same, right?


                Yes. I'll use an "XFontSet" type (from the X11 library). For Motif,
                I'll just create an XmFontList from that, while for Athena there would
                be nothing else to do.



                >>No one has yet complained about the lack of FontSet support in the
                >>menus, so probably no real harm done.
                >>
                >
                > I did get a few requests for it. Don't forget that the people that would like
                > to use this, often have trouble writing English, thus tend to keep their mouth
                > shut.


                *speaking to a large group of people* ... if anyone doesn't understand
                English, please raise your hand. *pauses and notes no raised hands*
                Good! Then everyone speaks English. ;-)



                > It almost looks like we have all the stuff in place to make the switch, or is
                > there still some place where using a fontset will require adding new code?


                Only minor bits will be added, I think.

                >
                > By default the current locale should be used. That's how it has always
                > worked. If possible, we would like to allow setting the encoding with ":lang"
                > and the 'encoding' option, and make the menus work with that. But restricting
                > this to have it only work when Vim is starting up isn't too bad.


                I'll take the first step and we'll go from there...


                > Perhaps what we can do is use a FONTSET_ALWAYS define to add the code for
                > this. At first to see if we run into trouble when implementing it. Then we
                > can enable it by default to let people test it. When we run into too much
                > trouble we can undefine it to fall back to the old code. Does that sound
                > reasonable?


                That sounds very reasonable. I have direction now.

                Thank you,
                David Harrison Jr.
              Your message has been successfully submitted and would be delivered to recipients shortly.