Search code examples
emacswindows-subsystem-for-linuxxming

emacs weird rendering of child frames


First and foremost: I'm still an emacs noob, so please consider me misunderstanding things.

I'm currently experience weird rendering errors when using child frames in emacs. This problems is consistent over many packages. Whenever a package creates a child frame, it get's rendered poorly.

Example using company-box: company-box1 company-box2 company-box3 company-box4 company-box5 company-box6

Another package I've the same experience with is lsp-ui or specifially lsp-ui-doc. For the sake of making sure no other package is causing this I'm using this minimal setup. The artifacts still remain:

lsp-ui1 lsp-ui2 lsp-ui3

To me it looks like that the size the child frame should have is the portion thats being displayed + the black artifact (or grey in the lsp-ui pictures. But somehow it only displays a portion of the content correctly and blanks out the rest. You can see that the actual content in the portion being displayed is cut off.

I have to note that this doesn't happen 100% of times. But about 80% I guess. Sometimes the frame is displayed correctly.

I have absolutely no idea what is causing this. One thing that might be of interest is my setup:

OS: Windows 10 (using WSL) Emacs: 26.3 (running in Ubuntu 18.04 LTS) X Server: VcXsrv 1.20.5.1 (But I've also tried Xming 6.9.0.31 - same result)

I've trouble finding any information about this online. There's at least one person having the same issue using company-box. He's also launching emacs using wsl and VcXsrv, which makes me think this may be related to WSL/VcXsrv.

I'd appreciate any help.


Solution

  • for anyone who is experiencing the same issues - I have found a solution.

    The problem is VcXsrv/Xming. Details about this bug can be found here. The solution is to switch to another Xserver. I'm currently trying MobaXTerm which doesn't have that problem. However there might be other, better alternatives.

    However it's good to have found the culprit in this case for anyone who is facing the same issue.