Hi Tmux devs;

Commit 35690fb3 by Sean Estabrooks restructures the tty_write function:

http://tmux.git.sourceforge.net/git/gitweb.cgi?p=tmux/tmux;a=blobdiff;f=tty.c;h=5d766761a34054ec407f1ae61577ae9b02c5990c;hp=6d77e897093305376d804348a0098c34b4a043a0;hb=35690fb3a53b340aa127e9e90f5d9dd509cd782a;hpb=1c608031b596f6e92e575a16a7acd56fb3b78f70

There is a small error in one of the tests that breaks redrawing in
multi-paned layouts. Note that in the previous code, the test for
TTY_FREEZE  is done againt c->tty.flags.

    if (c->tty.flags & TTY_FREEZE)
        continue;

However, in this revision, it is instead being tested against c->flags
along with CLIENT_SUSPENDED:

    if (c->flags & (CLIENT_SUSPENDED|TTY_FREEZE))
        continue;

This breaks redrawing of panes in subtle ways. To reproduce, open a new
tmux session at HEAD of master. Open a new syntax-highlighted Vim document
in the window. Split the window with split-window -h, move to either pane,
and resize it back and forth with resize-pane -L 5 and resize-pane -R 5 a
few times. Eventually you should start to notice sections of the Vim window
not resizing/redrawing correctly. I was able to reproduce this in both
rxvt-unicode-256color and xfce4-terminal.

The attached patch is a suggested fix that resolves the issue above for me.

I was brain-dumping in #tmux about this earlier today (as tyrmored), so
please ignore my babblings there.

--Tom Ryder @ Sanctum

Attachment: 35690fb3-redraw.patch
Description: Binary data

------------------------------------------------------------------------------
How fast is your code?
3 out of 4 devs don\\\'t know how their code performs in production.
Find out how slow your code is with AppDynamics Lite.
http://ad.doubleclick.net/clk;262219672;13503038;z?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
_______________________________________________
tmux-users mailing list
tmux-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tmux-users

Reply via email to