Version 2 of Strange phenomen

Updated 2010-06-17 23:04:28 by AMG
      :
      wm attributes . -alpha 0.4; update idletasks
msgBox "debug-1"
      set code [catch {$cmdint eval $m($m(current),$curItm,code)} rc]      
msgBox "debug-2"
      wm attributes . -alpha 1.0; update idletasks
      :

I see the following behaviour which I don't understand at all. Above, there's a fragment of code of one of my GUI-programs (tclkit 8.4.19, Windows XP). In the 2nd line, some code gets evaluated by a slave interpreter ($cmdint). Within these code, something gets executed without a trailing &, thus the program blocks, as expected; "debug-2" does not appear. But after a few seconds or so, the main window . of my program goes into -alpha 1.0 mode. After ending the executed process, "debug-2" appears, and the main window of my prog is in -alpha 0.4-mode again.

So, after all, who switches my program to - alpha 1.0 in between? Very mysterious...

AMG: I have your answer! When a program is unresponsive to window system events for more than five seconds, MS-Windows marks it as "Not Responding". Look in the Task Manager to see this. When the user clicks on a window for a Not Responding program, MS-Windows puts a "fake" window frame on it. Possibly other events can summon the "fake" window frame. This "fake" window frame looks like a normal window frame, unless you have a funky shaped window, and it allows minimizing, closing, resizing, and moving. Clicking the close button will bring up a confirmation dialog. A side effect of drawing this "fake" window frame is setting 100% opacity.