@@ -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() {
33753386 if (msgs .length != 0 ) {
33763387 messageLoop = true ;
33773388// System.out.println("msgs.legnth" + msgs.length);
3378- MESSAGE [] defered = new MESSAGE [0 ];
3379-
3380- int defsize = 0 ;
3389+ int idx = 0 ;
33813390 for (int i = msgs .length - 1 ; i >= 0 ; i --) {
33823391 MESSAGE m1 = msgs [i ];
33833392 if (m1 == null ) {
@@ -3393,31 +3402,33 @@ public void run() {
33933402 }
33943403
33953404 if (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());
33993409 m1 .defer = true ;
3400- defered [defsize ++] = m1 ;
34013410 }
34023411 }
34033412
34043413 }
34053414 long time = 0 ;
34063415
3416+ boolean deferred = false ;
34073417
34083418 for (int i = 0 ; i < msgs .length ; i ++) {
34093419// for (int i = msgs.length - 1; i >= 0; i--) {
34103420 MESSAGE m = msgs [i ];
34113421
34123422 if (m != null && m .defer ){
3423+ deferred = true ;
34133424// System.out.println("deffer " + m.control.getName());
34143425 continue ;
34153426 }
34163427 msgs [i ] = null ;
34173428 if (m != null && m .type == MESSAGE .CONTROL_LAYOUT ) {
34183429 m .control .waitingForLayout = false ;
34193430 if (!m .control .isVisible ()) { continue ; }
3420- Date d = new Date ();
3431+ long d = new Date (). getTime ();
34213432 Composite c = (Composite ) m .control ;
34223433 if (c .waitingForLayoutWithResize ){
34233434 c .setResizeChildren (false );
@@ -3437,41 +3448,50 @@ public void run() {
34373448 } else {
34383449 c .layout ();
34393450 }
3440- time += new Date ().getTime () - d . getTime () ;
3451+ time += new Date ().getTime () - d ;
34413452// System.err.println(c.getName() + " cost " + (time));
34423453 if (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);
34613476 return ;
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 () {
37463766 filterTable = null ;
37473767 if (messageProc != 0 ) {
37483768 window .clearInterval (messageProc );
3769+ messageProc = 0 ;
37493770 }
37503771 msgs = null ;
37513772}
@@ -4016,7 +4037,7 @@ boolean runPopups () {
40164037boolean runTimer (int id ) {
40174038 if (timerList != null && timerIds != null ) {
40184039 int index = 0 ;
4019- while (index <timerIds .length ) {
4040+ while (index < timerIds .length ) {
40204041 if (timerIds [index ] == id ) {
40214042 //OS.KillTimer (hwndMessage, timerIds [index]);
40224043 window .clearInterval (timerIds [index ]);
0 commit comments