On Sun, Dec 20, 2020 at 07:47:15PM +0000, Thorsten Glaser wrote: > Thomas Dickey dixit: > > >I see that version in testing, but don't see a problem on the screen. > >I made a short script to cat those lines to the terminal, sleeping 0.2 > >seconds between bursts, and the result looks ok, even with a magnifier. > > Indeed, tricky. I experimented with this a bit. > > I can reproduce this if I change your script from while true > to for x in 1 2 3 (so it does that only three times) but, and > this is important, move the xterm so that its bottom is below > the bottom end of the X11 screen.
how far below? Just the window-decoration, or a line or so? From the screenshot in your followup, I'm guessing the latter. > If I move the syslog terminal up by a few pixels, the problem > does not happen. > > If I use other terminal, font, etc. sizes, I also get display > corruption effects which vary (see screenshot). > > If I switch virtual workspaces (Ctrl-Alt-[1-8←→] in evilwm) > the effects go away as well. ...repainting uses a different path. > Maybe you can reproduce it with this info? I'll try that. (Of course if it depends on video hardware, etc., that won't succeed). Looking at the changes for #361, there's the changes for wrap-mark, and copy-wait. The latter was just this: -------------------------------------------------------------------------------- REV:1.859 util.c 2020/10/14 00:45:31 tom tags: xterm-361a, xterm-361, xterm-360e replace a call to XWindowEvent (which will block if there's no exposure events) in CopyWait with a call to XCheckWindowEvent (which lets me bail out on no more exposure events). That seems to fix a hang reported by Dave Kemper when iconifying/deiconifying while blasting lots of characters to an active icon. The XWindowEvent call dates back to 1991. --- util.c 2020/10/01 08:11:43 1.858 +++ util.c 2020/10/14 00:45:31 1.859 @@ -1,4 +1,4 @@ -/* $XTermId: util.c,v 1.857 2020/09/29 08:05:41 tom Exp $ */ +/* $XTermId: util.c,v 1.858 2020/10/01 08:11:43 tom Exp $ */ /* * Copyright 1999-2019,2020 by Thomas E. Dickey @@ -2082,8 +2082,10 @@ return; #endif - for (;;) { - XWindowEvent(screen->display, VWindow(screen), ExposureMask, &reply); + while (XCheckWindowEvent(screen->display, + VWindow(screen), + ExposureMask, + &reply)) { switch (reply.type) { case Expose: HandleExposure(xw, &reply); -------------------------------------------------------------------------------- as part of this: https://github.com/ThomasDickey/xterm-snapshots/commit/d98fb8ac7854e9b7906e7d1e65cf446ba6c78432#diff-e21ac3db1fb1f4c2521d0911da5ca3414412766a9aecad6c4c0cfad5d67b5165R2085 -- Thomas E. Dickey <dic...@invisible-island.net> https://invisible-island.net ftp://ftp.invisible-island.net
signature.asc
Description: PGP signature