On Thu, 22 Jun 2017 19:36:03 -0400
"S. Gilles" <sgilles_AT_math.umd.edu> wrote:
Hey S.,
> The first thing I tried was to delete expose() from x.c, which has
> been working perfectly for the past hour or so: st is responsive
> and I haven't seen any visual issues.
>
> Since it seems to work for my specific setup, I'm proposing this
> patch, but I'm sort of expecting/hoping that somebody who knows
> more than I do (so anything at all) about X11/xcb will explain why
> handling Expose events is actually needed. In that case, I'll try
> something more complicated to limit an Expose cascade to a single
> expose().
well, generally it is no problem to just remove expose, as the x.c
set of functions is framerate-based. So even if we do not redraw the
window on expose it will be done 17ms later (if you set it to 60fps),
not noticeable for the eye.
If you want to "mark" the window as dirty, do so. Just call
tsetdirt(0, term.row - 1);
and it will be redrawn on the next sheduled frame (if I understand st
correctly). The reason why st freezes has been identified by you
correctly. It is because we call redraw() without "respecting" the
framerate-limit.
With best regards
Laslo Hunhold
--
Laslo Hunhold <dev_AT_frign.de>
Received on Fri Jun 23 2017 - 20:24:54 CEST