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

Re: New MacVim Snapshot (r83)

Expand Messages
  • björn
    ... Nice. But does it work to navigate through the sheets using the keyboard? I think this is one of the biggest annoyances with the Carbon Vim port. /Björn
    Message 1 of 10 , Aug 5, 2007
    • 0 Attachment
      > I have posted a new snapshot of MacVim at:
      >
      >
      http://code.google.com/p/macvim/

      I just finished the gui_mch_dialog() part in my vim-cocoa project,
      which you may find interesting.

      For dialogs without text field, I simply create NSAlert, then runs
      that window as a modal sheet.

      The most tricky part is handling dialogs with a text field (it's used
      in menu "Help | Find...", "Edit | Global Settings | Search Path..."),
      because in this condition, we have to create a custom window as
      sheet, but it's hard to layout GUI elements in that window to make
      them fit the text and buttons provided. It's hard to create a tidy
      window conformance to HID programmatically. So my current
      approach use a NIB created by Interface Builder. Both text field
      and buttons in that NIB have fixed sizes and locations.

      Nice.  But does it work to navigate through the sheets using the keyboard?  I think this is one of the biggest annoyances with the Carbon Vim port.


      /Björn

      --~--~---------~--~----~------------~-------~--~----~
      You received this message from the "vim_mac" maillist.
      For more information, visit http://www.vim.org/maillist.php
      -~----------~----~----~----~------~----~------~--~---

    • Nico Weber
      Hi, ... If I hit Cmd-Zoombutton, drawing is still broken (and all keystrokes are ignored from that point in time, and I haven t found a way to restore vim back
      Message 2 of 10 , Aug 5, 2007
      • 0 Attachment
        Hi,

        > - Window resizing: The code logic has changed in that MacVim does
        > no actual resizing of the MMTextStorage without permission from
        > Vim; if the user drags to resize, MacVim tells Vim that the
        > dimensions should change and waits for Vim to acknowledge that the
        > dimensions have changed. Furthermore, no resizing is performed on
        > NSLayoutManager delegate messages (apparently this is bad
        > practice). Hopefully this will fix the bug where nothing got drawn
        > after zooming, as well as the bug where MacVim crashed when
        > resizing the window (please Nico...tell me it's ok now ;-). Also,
        > the window won't go completely blank when you drag to resize. A
        > negative side-effect is that the window might be too small if multi-
        > byte chars are being drawn...this will be addressed in the future.

        If I hit Cmd-Zoombutton, drawing is still broken (and all keystrokes
        are ignored from that point in time, and I haven't found a way to
        restore vim back to normal behaviour yet). I'll take a look at that
        now. "Normal" zooming works.

        I was no longer able to kill vim by ferocious window resizing.

        If I resize the window but keep the mouse button pressed after I'm
        done, it takes about 0.5 seconds until the internal vim window adapts
        the size of the gui window. Perhaps you can use a timer that checks
        for resizes every 0.1 seconds while resizing is in progress? (or
        you're currently ignoring some event -- or the internal vim window
        size is "one event late" due to implementation details. It could
        probably be fixed somehow anyways).

        In carbon vim, cmd-w means "Close current (vim) window"; I had a
        mapping in my vimrc that made it say "close current gui window if
        current gui has more than one window, otherwise close current tab. if
        there's only one tab as well, close vim". Do you think that's a more
        useful mapping? (it's especially strange that cmd-w doesn't close the
        window when only one tab page is open. cmd-w does that in every other
        app).

        > - Tabline bug: I've implemented Nico's suggested change to fix the
        > tabline drawing bug (the toolbar baseline is always hidden, when
        > tabs are hidden, a 1px baseline is drawn instead)

        Looks good.

        Great work :-)

        - Nico

        --~--~---------~--~----~------------~-------~--~----~
        You received this message from the "vim_mac" maillist.
        For more information, visit http://www.vim.org/maillist.php
        -~----------~----~----~----~------~----~------~--~---
      • Nico Weber
        ... Well, my mapping is `:map :q ` iirc (I m not at my main box atm) :-P --~--~---------~--~----~------------~-------~--~----~ You received this
        Message 3 of 10 , Aug 5, 2007
        • 0 Attachment
          > In carbon vim, cmd-w means "Close current (vim) window"; I had a
          > mapping in my vimrc that made it say "close current gui window if
          > current gui has more than one window, otherwise close current tab. if
          > there's only one tab as well, close vim". Do you think that's a more
          > useful mapping? (it's especially strange that cmd-w doesn't close the
          > window when only one tab page is open. cmd-w does that in every other
          > app).
          >
          > Yes! My intentions was to have Cmd-w close a tab if there is more
          > than one open, otherwise it should close the window. I was hoping
          > to do this with vim script...but I'm not sure how (have to learn
          > more vim script first to see if it is possible to query how many
          > tabs are open). Would your mapping be able to do that? Also, in
          > order for this to work properly I need to fix the implementation of
          > ':menukeyequiv' so that the menu item is updated whenever the key
          > equivalent changes (so that the text on the right hand side of the
          > menu item is updated to say Cmd-w next to "Close Tab" or next to
          > "Close Window" depending on whether more than one tab is open or not).

          Well, my mapping is `:map <D-w> :q<cr>` iirc (I'm not at my main box
          atm) :-P


          --~--~---------~--~----~------------~-------~--~----~
          You received this message from the "vim_mac" maillist.
          For more information, visit http://www.vim.org/maillist.php
          -~----------~----~----~----~------~----~------~--~---
        • björn
          ... Hehe, ok a little bit too low-tech for my needs...lets see if anybody else can help out with this mapping. (The Cmd-Zoom bug is fixed now by the way...as
          Message 4 of 10 , Aug 5, 2007
          • 0 Attachment
            > In carbon vim, cmd-w means "Close current (vim) window"; I had a
            > mapping in my vimrc that made it say "close current gui window if
            > current gui has more than one window, otherwise close current tab. if
            > there's only one tab as well, close vim". Do you think that's a more
            > useful mapping? (it's especially strange that cmd-w doesn't close the
            > window when only one tab page is open. cmd-w does that in every other
            > app).
            >
            > Yes!  My intentions was to have Cmd-w close a tab if there is more
            > than one open, otherwise it should close the window.  I was hoping
            > to do this with vim script...but I'm not sure how (have to learn
            > more vim script first to see if it is possible to query how many
            > tabs are open).  Would your mapping be able to do that?  Also, in
            > order for this to work properly I need to fix the implementation of
            > ':menukeyequiv' so that the menu item is updated whenever the key
            > equivalent changes (so that the text on the right hand side of the
            > menu item is updated to say Cmd-w next to "Close Tab" or next to
            > "Close Window" depending on whether more than one tab is open or not).

            Well, my mapping is `:map <D-w> :q<cr>` iirc (I'm not at my main box
            atm) :-P

            Hehe, ok a little bit too "low-tech" for my needs...lets see if anybody else can help out with this mapping.

            (The Cmd-Zoom bug is fixed now by the way...as I suspected %255c doesn't work that well as a format string to printf and relatives...)


            /Björn

            --~--~---------~--~----~------------~-------~--~----~
            You received this message from the "vim_mac" maillist.
            For more information, visit http://www.vim.org/maillist.php
            -~----------~----~----~----~------~----~------~--~---

          • Nico Weber
            ... I can confirm this is fixed (tested with svn revision 86 iirc). --~--~---------~--~----~------------~-------~--~----~ You received this message from the
            Message 5 of 10 , Aug 5, 2007
            • 0 Attachment
              > (The Cmd-Zoom bug is fixed now by the way...as I suspected %255c
              > doesn't work that well as a format string to printf and relatives...)

              I can confirm this is fixed (tested with svn revision 86 iirc).


              --~--~---------~--~----~------------~-------~--~----~
              You received this message from the "vim_mac" maillist.
              For more information, visit http://www.vim.org/maillist.php
              -~----------~----~----~----~------~----~------~--~---
            • Jjgod Jiang
              Hi, ... Yes, you can navigate between each buttons with tab key and use space key to confirm. But it seems the first button added automatically became the
              Message 6 of 10 , Aug 5, 2007
              • 0 Attachment
                Hi,

                2007/8/6, björn <bjorn.winckler@...>:
                > Nice. But does it work to navigate through the sheets using the keyboard?
                > I think this is one of the biggest annoyances with the Carbon Vim port.

                Yes, you can navigate between each buttons with tab key and use space
                key to confirm. But it seems the first button added automatically became
                the default button of that alert dialog (press Enter equals to hit that button).
                While the initial first responder is the last button added, this behavior needs
                to be corrected.

                For the input dialog window created by Interface Builder, do you know what's
                the "official" way to make a button default? Now I do this by setting it's key
                equiv. to \R.

                - Jiang

                --~--~---------~--~----~------------~-------~--~----~
                You received this message from the "vim_mac" maillist.
                For more information, visit http://www.vim.org/maillist.php
                -~----------~----~----~----~------~----~------~--~---
              • björn
                ... Let me know when you fixed this problem and I will try to adapt your code to MacVim. For the input dialog window created by Interface Builder, do you know
                Message 7 of 10 , Aug 6, 2007
                • 0 Attachment

                  2007/8/6, björn <bjorn.winckler@... >:
                  > Nice.  But does it work to navigate through the sheets using the keyboard?
                  > I think this is one of the biggest annoyances with the Carbon Vim port.

                  Yes, you can navigate between each buttons with tab key and use space
                  key to  confirm. But it seems the first button added automatically became
                  the default button of that alert dialog (press Enter equals to hit that button).
                  While the initial first responder is the last button added, this behavior needs
                  to be corrected.

                  Let me know when you fixed this problem and I will try to adapt your code to MacVim. 

                  For the input dialog window created by Interface Builder, do you know what's
                  the "official" way to make a button default? Now I do this by setting it's key
                  equiv. to \R.

                  I looked at the Cocoa application tutorial at Apple's dev center and they also do this by setting "Enter" as the key equiv of the default button.  So I guess that makes it the "official" way. :)


                  /Björn

                  --~--~---------~--~----~------------~-------~--~----~
                  You received this message from the "vim_mac" maillist.
                  For more information, visit http://www.vim.org/maillist.php
                  -~----------~----~----~----~------~----~------~--~---

                • Nico Weber
                  ... Untested: drag a connection from the enclosing window to the control and set it as the initialFirstResponder.
                  Message 8 of 10 , Aug 7, 2007
                  • 0 Attachment
                    > For the input dialog window created by Interface Builder, do you
                    > know what's
                    > the "official" way to make a button default? Now I do this by
                    > setting it's key
                    > equiv. to \R.

                    Untested: drag a connection from the enclosing window to the control
                    and set it as the initialFirstResponder.


                    --~--~---------~--~----~------------~-------~--~----~
                    You received this message from the "vim_mac" maillist.
                    For more information, visit http://www.vim.org/maillist.php
                    -~----------~----~----~----~------~----~------~--~---
                  Your message has been successfully submitted and would be delivered to recipients shortly.