MacDownApp / macdown

Open source Markdown editor for macOS.
https://macdown.uranusjr.com/
9.46k stars 1.09k forks source link

Rendering pane flashing #1104

Open dpmccabe opened 5 years ago

dpmccabe commented 5 years ago

Upgraded to 0.7.2 today and the rendering pane is flashing on almost every keypress: https://i.imgur.com/F7OTGhH.mp4

It seems to happen with every combination of themes and syntax highlighting I've tried.

MiroFurtado commented 5 years ago

I have this same issue, somewhat renders the app unusable.

akauppi commented 5 years ago

Me too. macOS 10.15.1 on Mac Mini 2018. The precise build is 1008.

Happens regardless of macOS dark/light mode, or MacDown themes.

machale commented 5 years ago

When I tried 0.7.2 on macOS 10.14.6 I saw the same flashing, so I don't think this is Catalina-specific.

homer0 commented 5 years ago

This is not Catalina specific; I haven't installed yet and I see the same blinking. I re-installed the previous version for now.

jenstroeger commented 4 years ago

Yes, same flickering issue with MacDown 0.7.2 on MacOS 10.14.6. I’m rolling back to the previous version 0.7.1 too.

@FranklinYu, any guesstimate as when this will be fixed?

FranklinYu commented 4 years ago

@jenstroeger I haven't found the cause so I cannot provide any estimate. Sorry.

homer0 commented 4 years ago

@FranklinYu no problem; the app is great as it is :D; I think there's no problem waiting a little bit more for all the new features.

titanix commented 4 years ago

Same here. The software became totally unusable. I updated from 0.7.1 to 0.7.2 and I'm really surprised and disappointed by all the UI changes and instability that came in a 0.0.X version.

FranklinYu commented 4 years ago

@titanix PR welcome 😄

MiroFurtado commented 4 years ago

Same here. The software became totally unusable. I updated from 0.7.1 to 0.7.2 and I'm really surprised and disappointed by all the UI changes and instability that came in a 0.0.X version.

Not hard to just use the older binary. I'm sure that the developer who donates his time to make this app has more than enough stuff to deal with.

techdad commented 4 years ago

Also have the same, MacDown 0.7.2 (1008) on macOS Mojave 10.14.6, with OS in dark mode. Also just rolling back the latest update for now, but plus one that it happens for me.

FranklinYu commented 4 years ago

This can easily be reproduced, but I’m still unable to find the cause of this issue. Will invest more time in it, but for the time being I plan to release a new version in stable channel addressing #1103. I guess it’s not bad to at least fix one issue.

anatmela commented 4 years ago

Updated from 0.7.1 to 0.7.3 (using Mojave 10.14.2), issue still exists (as predicted above). As a temporary measure, setting Update preview automatically as you type to off avoids the flicker.

iJaack commented 4 years ago

I'm trying to understand what is the cause that affects this. Any of you have Retina displays? which resolution? Just trying to understand a pattern :) I have a MacBook Pro 2019 and I have this problem every now and then, but not for every character that I type.

jenstroeger commented 4 years ago

Any of you have Retina displays? which resolution?

Yes: 15.4-inch (2880 x 1800), Intel Iris Pro 1536 MB graphics. That’s a 2015 MacBook Pro, and it flickers consistently with every keypress.

SSteve commented 4 years ago

Any of you have Retina displays? which resolution?

I have a 27" late-2015 iMac with a retina screen and see the flickering. I also have a non-retina monitor attached and the flickering happens there, too.

FranklinYu commented 4 years ago

I can also reproduce it on Retina iMac 2019 version. The flickering doesn’t happen every time, but only when I type fast. I suspect that when I type slowly the CPU processes it so fast that I didn’t notice it, which means that when we have a fix we need to test it on old hardware. I also have a Mac mini 2014 for this purpose.

I recommend everyone to use @anatmela’s workaround until we fix this bug.

AHBruns commented 4 years ago

Having this problem on as well. Using the work around for the time being. Just wanted to add my laptop's specs to help with finding a pattern for debugging:

Screen Shot 2020-01-27 at 11 57 44 AM
AHBruns commented 4 years ago

I can give more if needed.

jpweg1993 commented 4 years ago

Having the same issue on Mojave (10.14.6). Specs are below:

Screenshot 2020-01-28 at 09 30 12

Thanks @anatmela, that workaround works great!

craigrouse commented 4 years ago

Same issue, 2019 MBP 32GB Ram, 8-core i9 2.4GHz, AMD Radeon Pro 5300M 4 GB graphics card. Catalina 10.15.2

akauppi commented 4 years ago

@FranklinYu I remember seeing some OS X (those times) debugging tool for showing when GUI gets redrawn. Maybe that would be helpful - came to my mind since you mentioned:

I suspect that when I type slowly the CPU processes it so fast that I didn’t notice it.

Likely comes/came with Xcode. I don't have it on this machine, nor have seriously used.

sjspielman commented 4 years ago

+1, because of this ongoing issue I have downgraded to 0.7.1, last stable version where this does not occur on my OS. Mohave 10.14.6, retina 5K imac, Radeon Pro 575 4GB graphics.

timwredwards commented 4 years ago

Also seeing this issue on my machine, specs below. Downgraded to 0.7.1 for now.

Screenshot 2020-02-16 at 16 26 01
manngo commented 4 years ago

A lot of people have reported this issue. Is there anybody not experiencing this issue? If so, that information might also be useful.

dissolved commented 4 years ago

Rather than rollback, until this issue is resolved, turning off "Update preview as you type" and then just using command-R to refresh the preview is a pretty workable alternative.

Nexuist commented 4 years ago

Hi,

Just checking in to see the progress of this issue. Do we have a clue as to what is causing it? Is it the implementation of a bugfix that is taking the most time? If so, please let me know what I can do to help in terms of a PR. I really enjoy using this application 👍

adamwulf commented 4 years ago

One potential 'fix' would be to render the updated content in a second web view, and then swap the web views out after the render is complete. this would prevent showing a blank web view at all, as the old one could be displayed while the new one renders the updated content.

Palisand commented 4 years ago

I don't know if this will be of much help, but I think it's worth mentioning that refreshing / rendering with ⌘R will still result in flickering even if no changes have been made.

e-dervieux commented 4 years ago

I'm trying to understand what is the cause that affects this. Any of you have Retina displays? which resolution? Just trying to understand a pattern :) I have a MacBook Pro 2019 and I have this problem every now and then, but not for every character that I type.

MacBook Pro (13-inch, 2017, Four Thunderbolt 3 Ports) 3,5 GHz Intel Core i7 double cœur 16 Go 2133 MHz LPDDR3 Intel Iris Plus Graphics 650 1536 Mo

I am seeing this issue both on the integrated retina display and on my 24" 1080p iiyama auxiliary screen.

titanix commented 4 years ago

Yes, retina display. MacBook Pro (Retina, 13-inch, Early 2015).

manngo commented 4 years ago

I have a Retina iMac as well as a non-Retina iMac. Same behaviour.

ennation commented 4 years ago

Same behavior occurring on both an external display and the internal display of my 2019 16" MacBook Pro. I have disabled automatic preview updating for now

themainframe commented 4 years ago

Same in Dark Mode on Mojave 10.14.6 on Mac Pro (Early 2009) @ 2560 x 1440 HiDPI.

ivan-nosar commented 4 years ago

Hey folks! I'm still seeing this issue on my Macbook Pro 16 Retina. I'm using macOS 10.15.6, you can see details in the picture below. image

I can confirm that this behavior reproduces on both 0.7.3 - Stable and 0.8.0d71 - Pre-release builds.

Is there any chance to get it fixed? I like your app very much, but it's super uncomfortable to see this flashing either to disable preview on each update

MiroFurtado commented 4 years ago

I've unfortunately had to move to obsidian.md, which is closed source but free. I am very appreciative to the author but the app is somewhat unusable as is.

jenstroeger commented 4 years ago

Alas, I switched to Typora and am very happy with it.

ennation commented 4 years ago

MacDown is still working just fine for me with automatic rendering disabled. I just write a bunch, then hit ⌘R to render it when I have a moment to look over everything and make sure it's accurate. It's honestly less distracting for me than having it constantly rendering.

manngo commented 4 years ago

To be honest, I like the look and feel of MacDown, and it does what I need it to do. I’m still using Version 0.7.1 and I have no issues. I like the live update, and don’t need to upgrade yet.

The only important thing for me is to be assured that the product is still live. I appreciate the work that went into its development, and would happily offer to help, but I’m not familiar enough the the coding. (I am an experienced developer, but have no experience in Objective C and the framework).

Thunderforge commented 4 years ago

I just made a donation in the hopes that it would encourage the bug to be fixed. This is unfortunately a dealbreaker, and I'm willing to do whatever sort of encouragement I can to get it fixed.

yuriymacdev commented 4 years ago

I'm not related to this project, but I took some time to find out what's causing the problem.

The flicker is caused by a bug (as it seems) in 10.15/10.14 SDKs. Specifically, the part of the WebView that loads resources from a file when making a loadHTMLString call. I suspect this could be caused by a broken caching mechanism. Not sure how it worked in the past (most likely all linked resources were cached and didn't have to reload), but now resources are reloaded every time which is what makes it flicker: the page loads, renders itself with white, then the engine finishes pulling a .css with a different background from disk, and the page applies styling.

Because of this reason it also behaves inappropriately in case you embed a linked image - each page refresh the image gets pulled from the disk and the whole page text jumps until the loading completes.

The solutions that worked for me were:

In the mean time you can use v0.7.1. Hope that helps!

manngo commented 4 years ago

The solutions that worked for me were:

* you can build/link it with 10.12 SDK, which will make the flicker go away.

* in the long run you should probably move from WebView to WKWebView which is what Apple suggests (the app seems to work correctly with it, but it's a bit limited in terms of available delegate callbacks comparing to WebView).

That looks like good news to me. Do you mean that you’ve compiled it yourself both ways?

yuriymacdev commented 4 years ago

That looks like good news to me. Do you mean that you’ve compiled it yourself both ways?

I did.

r-bliss commented 4 years ago

That looks like good news to me. Do you mean that you’ve compiled it yourself both ways?

I did.

You couldn't make that compiled binary available, could you?

manngo commented 4 years ago

I have recently upgraded my Mac to MacOS 11.0.1 Big Sur. I am still using MacDown Version 0.7.1 (870) to avoid flashing.

I now find that the rendering pane flashes. I tried on a long document and a brand new document. The screen appears to attempt to scroll up and then redraw.

MacDownFlicker

manngo commented 4 years ago

Is there any further progress on this issue? I notice that a number of possible solutions have been suggested, and that there is one pull request, but no news as yet.

Meanwhile I have submitted a feature request to render on saving: https://github.com/MacDownApp/macdown/issues/1218. At least you can turn of Update preview automatically as you type a little more conveniently.

FranklinYu commented 4 years ago

@yuriymacdev I did plan to move to WKWebView (see #1181), but I’m still working on that. Would appreciate a PR whether it fixes this issue or not.

manngo commented 3 years ago

Is there an update on progress?

undavide commented 3 years ago

My (limited) understanding of the issue based on staring at the flashing UI for a long unhappy time, is that when a new text is entered the preview is updated, placed at the beginning and scrolled to the correct position. That becomes quite obvious if you place an image as the first item of the document, and enter some long text afterwards. On each keypress the initial image flashes and then disappears. I didn't know that 0.71 was OK, I've downgraded and I'll be fine with that I guess!

manngo commented 3 years ago

Are we getting anywhere on this?