From: Israel C. F. <isr...@fa...> - 2009-01-25 23:27:44
|
I have found a fix for this. I have a vague idea about why it works, but I can't quite explain it, so I'm not sure that it's a good way to fix it. But, since it works, here it is :) Israel =============== --- tcl/start.tcl 23 Jan 2009 19:04:02 -0000 1.54 +++ tcl/start.tcl 25 Jan 2009 22:54:51 -0000 @@ -801,8 +801,9 @@ ################################################################################ proc resizeMainBoard {} { - if { ! $::autoResizeBoard || ! $::docking::USE_DOCKING } { return } - + if { ! $::autoResizeBoard || ! $::docking::USE_DOCKING ||\ + ! $::docking::pendingConfigureEvent } { return } + bind .main <Configure> {} set w [winfo width .main] --- tcl/utils/win.tcl 23 Jan 2009 19:04:02 -0000 1.38 +++ tcl/utils/win.tcl 25 Jan 2009 22:54:52 -0000 @@ -430,6 +430,7 @@ # redraw takes some time : skip some events variable lastConfigureEvent 0 variable deltaConfigureEvent 400 + variable pendingConfigureEvent 0 # set to 1 to inhibit autostart of engines when restoring the default layout at startup set restore_running 0 @@ -439,15 +440,18 @@ proc ::docking::handleConfigureEvent { cmd } { variable lastConfigureEvent variable deltaConfigureEvent + variable pendingConfigureEvent after cancel "eval $cmd" set t [clock clicks -milliseconds] - + if { [expr $t - $lastConfigureEvent ] < $deltaConfigureEvent } { - after [ expr $deltaConfigureEvent + $lastConfigureEvent -$t ] "eval $cmd" - } else { + set pendingConfigureEvent 1 + after [ expr $lastConfigureEvent -$t ] "eval $cmd" + after [ expr $lastConfigureEvent -$t ] "eval set pendingConfigureEvent 0" + } else { set lastConfigureEvent $t - eval $cmd + #eval $cmd } } ################################################################################ |