Support guioptions 'k' flag in MacVim (2nd attempt) by ychin · Pull Request #731 · macvim-dev/macvim
…size Adds support for native GVim's 'k' flag. Adding/removing tabs/scrollbars and setting 'linespace'/'columnspace' would now cause the number of lines and columns in the buffer change to keep the window size constant, instead of the other way round of resizing the window to keep the view size constant. This helps prevent the window from resizing itself unncessarily, which could be especially annoying when the window is pinned/maximized. Manually setting 'lines'/'columns', going to full screen, dragging the window corner to resize would still resize the window. Also removed misc calls within MMWindowController.m that were setting shouldResizeVimView. Those calls were already handled by native Vim's gui.c's gui_set_shellsize so it's redundant. rebased from 1333bc6
Fix the following: * Zoom button: There was an error in refactoring leading to the handler calling the wrong function. * Toolbar addition/removal: This now respects the 'k' option. Toolbar is different from scrollbar and tabs because when you add/remove a toolbar in Cocoa it automatically resizes the window for you, so the implementation needs to manually un-resize the window and re-calculates the Vim view's 'lines' and 'columns' to fit.
Fix the issue that MacVim's window will have broken rendering (wrong Vim size) if the window was opened in another monitor. This was introduced as part of the implementation for guioptions 'k', The issue was that the function `moveWindowAcrossScreens` was buggy. It sets a flag "resizingDueToMove" but doesn't unset it after the `setFrameTopLeftPoint`, which may or may not call the resize function that is responsible in unsetting "resizeDueToMove". Fix the function to always unset it so that the flag doesn't leak till the next resize. Previously it "worked" due to MacVim's excessive resize messages masking the issue.
ychin
deleted the
guioptions-k-2
branch
ychin
mentioned this pull request
ychin added a commit to ychin/macvim that referenced this pull request
Dec 5, 2018Vim patch 8.1.560
Targets macOS 10.8+
Features:
- macOS Mojave (10.14) is now supported.
- MacVim's UI now works with Dark Mode.
- Fixed broken rendering and flickering under Mojave when using the
default Core Text renderer. macvim-dev#757
- guioption 'k' is supported again. macvim-dev#731
- This option prevents window from resizing when UI elements such as
toolbars or tabs show or hide themselves.
Fixes:
- Fixed misc fullscreen and window resizing bugs and artifacts macvim-dev#745
- Dragging tabs to reorder now works properly macvim-dev#789
- Fixed timer callback handling in GUI macvim-dev#749
- Fixed native tabs (10.12+) interring with Vim tabs macvim-dev#788
- Fixed Japanese IME Ctrl-U/Ctrl-O handling macvim-dev#742
- Fixed MMShareFindPboard and Cmd-E/Cmd-G interactions macvim-dev#780
- Better handling of guifontwide font size macvim-dev#737
- Better python discovery in default vimrc macvim-dev#739
Known Issues:
- Scrolling performance is slightly worse under Mojave macvim-dev#796
Script interfaces have compatibility with these versions:
- Lua 5.3
- Perl 5.18
- Python2 2.7
- Python3 3.7
- Ruby 2.5
ychin added a commit that referenced this pull request
Dec 5, 2018Vim patch 8.1.560
Targets macOS 10.8+
Features:
- macOS Mojave (10.14) is now supported.
- MacVim's UI now works with Dark Mode.
- Fixed broken rendering and flickering under Mojave when using the
default Core Text renderer. #757
- guioption 'k' is supported again. #731
- This option prevents window from resizing when UI elements such as
toolbars or tabs show or hide themselves.
Fixes:
- Fixed misc fullscreen and window resizing bugs and artifacts #745
- Dragging tabs to reorder now works properly #789
- Fixed timer callback handling in GUI #749
- Fixed native tabs (10.12+) interring with Vim tabs #788
- Fixed Japanese IME Ctrl-U/Ctrl-O handling #742
- Fixed MMShareFindPboard and Cmd-E/Cmd-G interactions #780
- Better handling of guifontwide font size #737
- Better python discovery in default vimrc #739
Known Issues:
- Scrolling performance is slightly worse under Mojave #796
Script interfaces have compatibility with these versions:
- Lua 5.3
- Perl 5.18
- Python2 2.7
- Python3 3.7
- Ruby 2.5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters