Menu

#1291 wm geometry slow on Linux

open
5
2002-09-13
2002-09-13
Joe English
No

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.

Discussion

  • Joe English

    Joe English - 2002-09-13

    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.

     
  • Joe English

    Joe English - 2003-01-18

    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.

     
MongoDB Logo MongoDB