@@ -2641,7 +2641,18 @@ public void run() {
26412641 * C_$.createC_$Window_ = Console.createC_$Window;
26422642 * C_$.createConsoleWindow = C_$.createC_$Window = function (parentEl) {
26432643 * var console = C_$.createC_$Window_ (parentEl);
2644- * console.style.display = "none";
2644+ * if (O$.isIE) {
2645+ * var consoleStyle = console.style;
2646+ * consoleStyle.display = "block"
2647+ * consoleStyle.position = "absolute";
2648+ * consoleStyle.width = "200px";
2649+ * consoleStyle.height = "200px";
2650+ * consoleStyle.left = "-400px";
2651+ * consoleStyle.top = "-400px";
2652+ * consoleStyle.overflow = "hidden";
2653+ * } else {
2654+ * console.style.display = "none";
2655+ * }
26452656 * $wt.widgets.Display.insertOpenConsoleLink(console);
26462657 * return console;
26472658 * };
@@ -3375,9 +3386,7 @@ public void run() {
33753386if (msgs .length !=0 ) {
33763387messageLoop =true ;
33773388//System.out.println("msgs.legnth" + msgs.length);
3378- MESSAGE []defered =new MESSAGE [0 ];
3379-
3380- int defsize =0 ;
3389+ int idx =0 ;
33813390for (int i =msgs .length -1 ;i >=0 ;i --) {
33823391MESSAGE m1 =msgs [i ];
33833392if (m1 ==null ) {
@@ -3393,31 +3402,33 @@ public void run() {
33933402}
33943403
33953404if (m1 .type ==MESSAGE .CONTROL_LAYOUT ){
3396- if (m1 .control .parent !=null &&m1 .control .parent .waitingForLayout ){
3405+ Composite p =m1 .control .parent ;
3406+ if (p !=null &&p .waitingForLayout ){
33973407//System.out.println(m1.control.getName()+ " is waiting for parent " +
3398- //m1.control.parent .getName());
3408+ //p .getName());
33993409m1 .defer =true ;
3400- defered [defsize ++] =m1 ;
34013410}
34023411}
34033412
34043413}
34053414long time =0 ;
34063415
3416+ boolean deferred =false ;
34073417
34083418for (int i =0 ;i <msgs .length ;i ++) {
34093419//for (int i = msgs.length - 1; i >= 0; i--) {
34103420MESSAGE m =msgs [i ];
34113421
34123422if (m !=null &&m .defer ){
3423+ deferred =true ;
34133424//System.out.println("deffer " + m.control.getName());
34143425continue ;
34153426}
34163427msgs [i ] =null ;
34173428if (m !=null &&m .type ==MESSAGE .CONTROL_LAYOUT ) {
34183429m .control .waitingForLayout =false ;
34193430if (!m .control .isVisible ()) {continue ; }
3420- Date d =new Date ();
3431+ long d =new Date (). getTime ();
34213432Composite c = (Composite )m .control ;
34223433if (c .waitingForLayoutWithResize ){
34233434c .setResizeChildren (false );
@@ -3437,41 +3448,50 @@ public void run() {
34373448}else {
34383449c .layout ();
34393450}
3440- time +=new Date ().getTime () -d . getTime () ;
3451+ time +=new Date ().getTime () -d ;
34413452//System.err.println(c.getName() + " cost " + (time));
34423453if (time >200 ) {
34433454//System.out.println("before deferring:" + msgs.length);
3444- for (int j =i +1 ;j <msgs .length ;j ++) {
3445- msgs [j -i -1 ] =msgs [j ];
3455+ idx =0 ;
3456+ if (deferred ) {
3457+ for (int j =0 ;j <i +1 ;j ++) {
3458+ m =msgs [j ];
3459+ if (m !=null &&m .defer ) {
3460+ msgs [idx ++] =m ;
3461+ }
3462+ msgs [j ] =null ;
3463+ }
34463464}
3447- //for (int j = 0; j < i; j++) {
3448- //msgs[msgs.length - 1 - j] = null;
3449- //}
3450- int length =msgs .length -i -1 ;
3451- for (int j =0 ;j <defsize ;j ++){
3452- msgs [length +j ] =defered [j ];
3465+ for (int j =i +1 ;j <msgs .length ;j ++) {
3466+ msgs [idx ++] =msgs [j ];
3467+ msgs [j ] =null ;
34533468}
34543469/**
34553470 * @j2sNativeSrc
3456- * msgs.length-= i + 1 ;
3471+ * msgs.length= idx ;
34573472 * @j2sNative
3458- * a.length-= f + 1 ;
3473+ * a.length= b ;
34593474 */ {}
34603475//System.out.println("after deferring:" + msgs.length);
34613476return ;
34623477}
34633478}
34643479}
3480+ idx =0 ;
3481+ if (deferred ) {
3482+ for (int j =0 ;j <msgs .length ;j ++){
3483+ MESSAGE m =msgs [j ];
3484+ if (m !=null &&m .defer ) {
3485+ msgs [idx ++] =m ;
3486+ }
3487+ }
3488+ }
34653489/**
34663490 * @j2sNativeSrc
3467- * msgs.length =0 ;
3491+ * msgs.length =idx ;
34683492 * @j2sNative
3469- * a.length =0 ;
3493+ * a.length =b ;
34703494 */ {}
3471- Display .this .msgs =defered ;
3472- //for(int j = 0; j < defsize; j++){
3473- //msgs[j] = defered[j];
3474- //}
34753495}
34763496}
34773497},100 );
@@ -3746,6 +3766,7 @@ void releaseDisplay () {
37463766filterTable =null ;
37473767if (messageProc !=0 ) {
37483768window .clearInterval (messageProc );
3769+ messageProc =0 ;
37493770}
37503771msgs =null ;
37513772}
@@ -4016,7 +4037,7 @@ boolean runPopups () {
40164037boolean runTimer (int id ) {
40174038if (timerList !=null &&timerIds !=null ) {
40184039int index =0 ;
4019- while (index <timerIds .length ) {
4040+ while (index <timerIds .length ) {
40204041if (timerIds [index ] ==id ) {
40214042//OS.KillTimer (hwndMessage, timerIds [index]);
40224043window .clearInterval (timerIds [index ]);