Skip to content

Fix starting up in non-native fullscreen resulting in black screen #811

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 10, 2018

Conversation

ychin
Copy link
Member

@ychin ychin commented Dec 10, 2018

This fixes issues related to starting up in fullscreen mode (by setting set fullscreen in gvimrc).

Fix black screen when starting in non-native fullscreen:

  • Fix set fullscreen goes to black after update 8.1.560 #804
  • Non-native fullscreen has an old behavior where it sets CGLayer mode on core text renderer to address rendering artifacts in pre-Mojave, and we have an insufficient block against it (by checking cgContext). In Mojave, we use buffered draws instead and prevent setting CGLayer by checking cgContext, but it is not yet initialized yet in this situation (since it's lazily initialized). Block against cgBufferDrawEnabled instead.
  • The CGLayer renderer is really deprecated at this point so ideally we could clean up the code a little bit in the future.

Setting MMUseCGLayerAlways no longer results in black screen:

Fix starting up in fullscreen resulting in a small Vim window:

  • When starting MacVim in fullscreen mode, the presentation is delayed until the window is made. need to make sure to set shouldResizeVimView in this code path too. Before the guioption-k fixes, there were a lot of random calls to recalculate sizes which was why this happened implicitly. Now need to make sure we do the right thing and call it.

Fix issues related to starting up in fullscreen mode (by setting
`set fullscreen` in gvimrc).

Fix black screen when starting in non-native fullscreen:
- Fix macvim-dev#804
- Non-native fullscreen has an old behavior where it sets CGLayer mode
  on core text renderer to address rendering artifacts in pre-Mojave,
  and we have an insufficient block against it (by checking cgContext).
  In Mojave, we use buffered draws instead and prevent setting CGLayer
  by checking cgContext, but it is not yet initialized yet in this
  situation (since it's lazily initialized). Block against
  cgBufferDrawEnabled instead.
- The CGLayer renderer is really deprecated at this point so ideally we
  could clean up the code a little bit in the future.

Setting MMUseCGLayerAlways no longer results in black screen:
- Fix macvim-dev#801
- CGLayer renderer is basically deprecated doesn't actually work in
  Mojave. Make sure setting MMUseCGLayerAlways won't trigger it if we
  are already using buffered draw (which is automatically the case in
  Mojave).

Fix starting up in fullscreen resulting in a small Vim window:
- When starting MacVim in fullscreen mode, the presentation is delayed
  until the window is made. need to make sure to set shouldResizeVimView
  in this code path too. Before the guioption-k fixes, there were a lot
  of random calls to recalculate sizes which was why this happened
  implicitly. Now need to make sure we do the right thing and call it.
@ychin ychin merged commit b397052 into macvim-dev:master Dec 10, 2018
@ychin ychin deleted the startup-nonnative-fullscreen-fix branch December 10, 2018 12:43
ychin added a commit to ychin/macvim that referenced this pull request Dec 13, 2018
Vim patch 8.1.577

Targets macOS 10.8+

Features:

- The option to automatically download and install updates is now
  exposed in the preference panel. This gives you a way to uncheck it,
  as previously there was no user-visible way to do so once it's
  checked. macvim-dev#816

Fixes:

- Title bar is no longer transparent in 10.12 Sierra macvim-dev#805
- Fixed 'transparency' setting not working properly in Mojave macvim-dev#805
- Fixed setting 'fullscreen' in vimrc leading to black screen in 10.14
  Mojave if non-native fullscreen is used macvim-dev#811
- Fixed showing all black if MMUseCGLayerAlways is set in 10.14 Mojave
  macvim-dev#811
- Fixed misconfigured Python paths in default vimrc macvim-dev#812

Script interfaces have compatibility with these versions:

- Lua 5.3
- Perl 5.18
- Python2 2.7
- Python3 3.7
- Ruby 2.5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

set fullscreen goes to black after update 8.1.560 All text invisible after update to 8.1.560 on Mojave
1 participant