On comp.lang.tcl, Ian Gay reports that:
1. A script was ok on Windows and showed slow response
on Linux.
2. Inspection showed I was frequently doing the
equivalent of
[wm geometry . [wm geometry .]]
3. When I stopped doing this the script worked ok on
Linux. Tentative
conclusion: Linux spends a lot of time in wm geometry.
4. Joe English reported, and I confirm, that
time {wm geometry . [wm geometry .]} 1000 shows
that wm geometry does not
take a long time, it executes in microseconds, so that
can't be the answer.
5. If I source the whole script and run it a bit, and
then time the routine in
which wm geometry occurs, I also find that routine to
be fast.
6. If I disable my binding on <Configure> then the
response is good, even when
doing the unnecessary [wm geometry . [wm geometry .]]
calls.
7. Aha! Obviously [wm geometry . [wm geometry .]]
generates a <Configure>
event and I have gone into some kind of loop or race.
8. No. When I instrument my <Configure> callback to
show when it is run, I
find that [wm geometry . [wm geometry .]] does not
generate a <Configure>.
Slaven Rezic provided the missing clue:
> Add "update" or "update idletasks" [after wm
geometry].
The problem occurs under icewm, fvwm2 and twm.
Logged In: YES
user_id=68433
Initial diagnosis: it looks like this is basically the same
problem as in TIP 107:
the window managers aren't sending synthetic
<ConfigureNotify>
messages when they're supposed to. Tk attempts to
compensate
for this by trying to determine when the ConfigureRequest is
unnecessary, but it's guessing wrong.
Logged In: YES
user_id=68433
Just a followup to note that I *haven't* forgotten about
this problem, just that I still have no idea how to fix it
yet.
Asking WM authors to fix the problem on their end has proven
fruitless so far.