Jamie writes:
--------------------------------------------------------------------------------
----------------
I run many xemacsen through ssh. Some of the machines I run remote
xemacsen on are networkologically far away -- on the other side of
both a T1 and a DSL. X traffic tunnelled through ssh this way is
understandably slow, but still tolerable.
Except when XEmacs is processing exposure events. Then it's a
nightmare.
Here's what happens:
- Have an XEmacs window with the left 50% of the window occluded
by some higher window.
- Drag that other window away to the left.
- The XEmacs window is fully visible on the screen ~2 seconds later.
- XEmacs repaints column 39, and flickers a few times.
- XEmacs repaints column 38, and flickers a few times.
- XEmacs repaints column 37, and flickers a few times.
...
- 20 seconds later, I can type at XEmacs again.
So clearly there's some bad logic in the event processing here.
At the end of second two, XEmacs has dozens of Expose events on
its queue. It is processing each of them in turn, probably with
an XSync after each, instead of reading them all, then doing
one batch refresh that paints all damaged areas.
This is my number one most irritating XEmacs bug.
--------------------------------------------------------------------------------
----------------
i decided to look into this (I REALLY SHOULDN'T. this is crunch time, i have
lots and lots of stuff to do ...)
Anywhere, here is a quick-and-dirty, untested hack. my not compile. all it
does is delay the XSync until the appropriate time. it doesn't group together
adjancent Expose events. [#### ISN'T XT SUPPOSED TO DO THIS AUTOMATICALLY? IS
THERE A WAY TO FORCE IT TO DO THIS????? I know Window automatically does this.]
it will probably mess up C-g checking, which needs to be further redone
("modernized" in the way that code for other window systems has already had
done). However, if it works, modulo some twiddling, please let me know (along
with the twiddling) and i will fix it up the rest of the way when i have more
time.
ben