Skip to content

Non-native fullscreen broken with Core Text in macOS Sierra #312

Closed

Description

@stranak

In Snapshot 104 on Sierra 10.12 Beta (16A254g) when I enable "Use Core Text renderer" and disable "Prefer native fullscreen support", all text disappears. Looks like the background color is drawn over everything. Only the current word under cursor periodically appears and disappears as cursor blinks (and triggers redraw?).

Changing one of the options (i.e. running either CoreText + Native full-screen, or non-CoreText + non-native fullscreen) makes everything work fine.

Activity

  1. chdiza commented on Jul 24, 2016

    @chdiza
    Contributor

    Uh oh. I love non-native fullscreen mode. Unfortunately I don't have (and won't have) a Sierra beta to play around with.

  2. amix commented on Aug 23, 2016

    @amix

    Have the same issue

  3. chdiza commented on Sep 14, 2016

    @chdiza
    Contributor

    I can confirm this.

    The text will appear for almost a second, then disappear behind the background (except for where the cursor is).

    A keypress that scrolls the whole screen will temporarily bring the text back to where it should be, but then after a second it disappears again.

  4. ralphholzmann commented on Sep 19, 2016

    @ralphholzmann

    still happening on the 2nd gold master of macOS Sierra

  5. amix commented on Sep 20, 2016

    @amix

    Bump up for re-interest. This is really affecting my zen moment with MacVim 😄

  6. chdiza commented on Sep 20, 2016

    @chdiza
    Contributor

    We'll need to wait for Sierra to come out first so that the devs can work on it.

  7. ralphholzmann commented on Sep 20, 2016

    @ralphholzmann

    Well lucky for us, it gets released today! sierra release date

  8. amadeus commented on Sep 20, 2016

    @amadeus

    Can confirm, this breaks for me as well :(

  9. aapit commented on Sep 21, 2016

    @aapit

    I can unfortunately also confirm this with the most recent official Sierra (10.12) in combination with the latest stable MacVim 8.0 (110).
    Most of the screen is black, except for some areas and a red blinking cursor.
    It also happens when I switch back to full screen. Switching to a normal window restores the normal rendering (yikes, that ugly window chrome though!)

  10. sahibalejandro commented on Sep 26, 2016

    @sahibalejandro

    🖐🏼 Same problem here! Any news on this issue?

  11. mario-grgic commented on Sep 27, 2016

    @mario-grgic

    This is a bit annoying, since native full screen mode does not return focus to terminal if you launch MacVim GUI from the command line and then ext (I diff files in MacVim GUI and do it in full screen to see files side by side).

  12. amadeus commented on Sep 29, 2016

    @amadeus

    Sorry to bug, any update on this? If I knew C or Objective-C I would totally try to help, but unfortunately I don't :(

  13. chdiza commented on Oct 1, 2016

    @chdiza
    Contributor

    Here is an observation that might help the devs with debugging.

    If I recall correctly from long ago, non-native mode fullscreen involves painting the full screen with a color identical to that of the Vim background color, but underneath the "actual" MacVim window. (This is to make sure that there aren't borders left uncovered when the screen size isn't an exact multiple of the rows or columns.) All along, you may have seen this if you changed your colorscheme once already in NNFS, from a dark background scheme to a light one (or vice versa). If you made maxhorz or maxvert not be the full width or height, this was especially obvious. Changing the colorscheme to a sufficiently different one would leave the "borders" colored like the previous scheme's background. Going out of FS and back in would fix this.

    Anyway, wrt this disappearing text problem on Sierra, you can see that it's this "fake" background painting that's covering the text and the "actual" MacVim window. E.g.: start MacVim, do "colo MacVim" and "set bg=light". Then go into NNFS. The text will disappear underneath the white "fake" background. While still in NNFS, do "set bg=dark". Wait a second, and text will disappear underneath the fake white again. Go out of NNFS and then go right back in. Now the text disappears underneath the (now) grey10 "fake" background.

    I have no idea why this is happening on Sierra all of a sudden, but someone who knows what they're doing might now know where to start looking.

  14. olimorris commented on Oct 3, 2016

    @olimorris

    Just to add my voice to the, this is happening to me on macOS Sierra on a 2014 MacBook Air.

  15. francof commented on Oct 6, 2016

    @francof

    +1

  16. 19 remaining items

  17. splhack commented on Nov 20, 2016

    @splhack
    Contributor

    can you guys test the master branch?

  18. stranak commented on Nov 20, 2016

    @stranak
    Author

    can you guys test the master branch?

    It works great for me. Many thanks.

  19. added a commit that references this issue on Nov 20, 2016
  20. nuc commented on Nov 21, 2016

    @nuc

    Thanks for the fix!

    Unfortunately, it feels a bit laggy, especially when moving the caret around. It doesn't feel slow in the native full-screen mode though 🤔

    So, I think I will be sticking in the native full-screen mode for now.

  21. amix commented on Nov 21, 2016

    @amix

    Awesome stuff @splhack 👏 ❤️

  22. splhack commented on Nov 21, 2016

    @splhack
    Contributor

    @amix praise must go to @osheroff :)

  23. amix commented on Nov 21, 2016

    @amix

    All praise @osheroff! 👏 ❤️ 💃

  24. osheroff commented on Nov 21, 2016

    @osheroff

    thx guys. @nuc yeah this is doing more computation than before (it currently draws offscreen and then copies the whole layer over), so drawRect is some milliseconds slower than with the previous method. There should be plenty of room to optimize it, but it'll need some work to draw to the layer offscreen and then update just the rects needed.

  25. whilelucky commented on Mar 12, 2017

    @whilelucky

    Thanks for your work on this @osheroff 👍 🥇 Is there any progress being made towards optimizing the draw lag or has that been abandoned?

    Sadly, like @nuc stuck with using the native full-screen mode for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions