Subversion Repositories Kolibri OS

Rev

Rev 380 | Rev 389 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 380 Rev 381
Line 167... Line 167...
167
        sub   edx, ebx
167
        sub   edx, ebx
168
        inc   ecx
168
        inc   ecx
169
        inc   edx
169
        inc   edx
Line 170... Line 170...
170
 
170
 
171
        ; get WinMap start
171
        ; get WinMap start
172
        mov   edi, [0xFE00] ; screen_sx
172
        mov   edi, [ScreenWidth] ; screen_sx
173
        inc   edi
173
        inc   edi
174
        imul  edi, ebx
174
        imul  edi, ebx
175
        add   edi, eax
175
        add   edi, eax
Line 187... Line 187...
187
        dec   ecx
187
        dec   ecx
188
        jnz   .new_x
188
        jnz   .new_x
Line 189... Line 189...
189
 
189
 
190
        pop   edx
190
        pop   edx
191
        pop   ecx
191
        pop   ecx
192
        add   edi, [0xFE00]
192
        add   edi, [ScreenWidth]
193
        inc   edi
193
        inc   edi
194
        sub   edi, ecx
194
        sub   edi, ecx
195
        dec   edx
195
        dec   edx
196
        jnz   .new_y
196
        jnz   .new_y
Line 228... Line 228...
228
 
228
 
Line 229... Line 229...
229
        push  dword [edi+APPDATA.wnd_shape_scale]  ; push scale first -> for loop
229
        push  dword [edi+APPDATA.wnd_shape_scale]  ; push scale first -> for loop
230
 
230
 
231
        ; get WinMap start  -> ebp
231
        ; get WinMap start  -> ebp
232
        push  eax
232
        push  eax
233
        mov   eax, [0xFE00] ; screen_sx
233
        mov   eax, [ScreenWidth] ; screen_sx
234
        inc   eax
234
        inc   eax
235
        imul  eax, ebx
235
        imul  eax, ebx
236
        add   eax, [esp]
236
        add   eax, [esp]
Line 290... Line 290...
290
        inc  edx
290
        inc  edx
291
        cmp  edx, [ff_xsz]
291
        cmp  edx, [ff_xsz]
292
        jb   .ff_new_x
292
        jb   .ff_new_x
293
        sub  ebp, [ff_xsz]
293
        sub  ebp, [ff_xsz]
294
        add  ebp, [ff_x]
294
        add  ebp, [ff_x]
295
        add  ebp, [0xFE00]  ; screen.x
295
        add  ebp, [ScreenWidth]  ; screen.x
296
        inc  ebp
296
        inc  ebp
297
        inc  ebx
297
        inc  ebx
298
        cmp  ebx, [ff_ysz]
298
        cmp  ebx, [ff_ysz]
299
        jb   .ff_new_y
299
        jb   .ff_new_y
Line 347... Line 347...
347
     jne  dspl00
347
     jne  dspl00
348
     mov  [windowtypechanged],dword 0
348
     mov  [windowtypechanged],dword 0
349
  redraw_screen_direct:
349
  redraw_screen_direct:
350
     mov  [dlx],dword 0
350
     mov  [dlx],dword 0
351
     mov  [dly],dword 0
351
     mov  [dly],dword 0
352
     mov  eax,[0xfe00]
352
     mov  eax,[ScreenWidth]
353
     mov  [dlxe],eax
353
     mov  [dlxe],eax
354
     mov  eax,[0xfe04]
354
     mov  eax,[ScreenHeight]
355
     mov  [dlye],eax
355
     mov  [dlye],eax
356
     mov  eax,window_data
356
     mov  eax,window_data
357
     call redrawscreen
357
     call redrawscreen
358
   dspl00:
358
   dspl00:
359
     popad
359
     popad
Line 425... Line 425...
425
        jne     no_set_workarea
425
        jne     no_set_workarea
426
        movsx   eax,word[esp+16+2]
426
        movsx   eax,word[esp+16+2]
427
        movsx   ebx,word[esp+16]
427
        movsx   ebx,word[esp+16]
428
        cmp     eax,ebx
428
        cmp     eax,ebx
429
        jge     .lp1
429
        jge     .lp1
430
        or      eax,eax;[0xFE00]
430
        or      eax,eax;[ScreenWidth]
431
        jl      @f
431
        jl      @f
432
        mov     [screen_workarea.left],eax
432
        mov     [screen_workarea.left],eax
433
    @@: cmp     ebx,[0xFE00]
433
    @@: cmp     ebx,[ScreenWidth]
434
        jg      .lp1
434
        jg      .lp1
435
        mov     [screen_workarea.right],ebx
435
        mov     [screen_workarea.right],ebx
436
  .lp1: movsx   eax,word[esp+24+2]
436
  .lp1: movsx   eax,word[esp+24+2]
437
        movsx   ebx,word[esp+24]
437
        movsx   ebx,word[esp+24]
438
        cmp     eax,ebx
438
        cmp     eax,ebx
439
        jge     .lp2
439
        jge     .lp2
440
        or      eax,eax;[0xFE04]
440
        or      eax,eax;[0xFE04]
441
        jl      @f
441
        jl      @f
442
        mov     [screen_workarea.top],eax
442
        mov     [screen_workarea.top],eax
443
    @@: cmp     ebx,[0xFE04]
443
    @@: cmp     ebx,[ScreenHeight]
444
        jg      .lp2
444
        jg      .lp2
445
        mov     [screen_workarea.bottom],ebx
445
        mov     [screen_workarea.bottom],ebx
446
  .lp2: call    repos_windows
446
  .lp2: call    repos_windows
447
        mov     eax, 0
447
        mov     eax, 0
448
        mov     ebx, 0
448
        mov     ebx, 0
449
        mov     ecx, [0xfe00]
449
        mov     ecx, [ScreenWidth]
450
        mov     edx, [0xfe04]
450
        mov     edx, [ScreenHeight]
451
    call    calculatescreen
451
    call    calculatescreen
452
;    jmp    redraw_screen_direct
452
;    jmp    redraw_screen_direct
453
    .exit:
453
    .exit:
454
        popad
454
        popad
455
        ret
455
        ret
Line 496... Line 496...
496
        rep     movsd
496
        rep     movsd
497
        call    parse_skin_data
497
        call    parse_skin_data
498
    pushad
498
    pushad
499
        mov     eax, 0
499
        mov     eax, 0
500
        mov     ebx, 0
500
        mov     ebx, 0
501
        mov     ecx, [0xfe00]
501
        mov     ecx, [ScreenWidth]
502
        mov     edx, [0xfe04]
502
        mov     edx, [ScreenHeight]
503
        call    calculatescreen
503
        call    calculatescreen
504
    popad
504
    popad
505
        mov     dword[esp+32+36],0
505
        mov     dword[esp+32+36],0
506
        jmp     redraw_screen_direct
506
        jmp     redraw_screen_direct
507
  .exit:
507
  .exit:
Line 515... Line 515...
515
 
515
 
516
 
516
 
517
repos_windows:
517
repos_windows:
518
        mov     ecx,[TASK_COUNT]
518
        mov     ecx,[TASK_COUNT]
519
        mov     edi,0x20*2
519
        mov     edi,0x20*2
520
    mov    byte[0x0000fff0],1
520
    mov    byte[REDRAW_BACKGROUND],1
521
        dec     ecx
521
        dec     ecx
522
        jge    @f
522
        jge    @f
523
        ret
523
        ret
Line 541... Line 541...
541
        add     edi,0x20
541
        add     edi,0x20
542
        loop    @b
542
        loop    @b
543
        ret
543
        ret
544
  .lp2: mov     eax,[edi+WDATA.box.left]
544
  .lp2: mov     eax,[edi+WDATA.box.left]
545
        add     eax,[edi+WDATA.box.width]
545
        add     eax,[edi+WDATA.box.width]
546
    mov    ebx,[0x0000fe00]
546
    mov    ebx,[ScreenWidth]
547
;    inc    ebx
547
;    inc    ebx
548
    cmp    eax,ebx
548
    cmp    eax,ebx
549
    jle    .lp4
549
    jle    .lp4
550
        mov     eax,[edi+WDATA.box.width]
550
        mov     eax,[edi+WDATA.box.width]
551
    sub    eax,ebx
551
    sub    eax,ebx
Line 553... Line 553...
553
        mov     [edi+WDATA.box.width],ebx
553
        mov     [edi+WDATA.box.width],ebx
554
  .lp3: sub     ebx,[edi+WDATA.box.width]
554
  .lp3: sub     ebx,[edi+WDATA.box.width]
555
        mov     [edi+WDATA.box.left],ebx
555
        mov     [edi+WDATA.box.left],ebx
556
  .lp4: mov     eax,[edi+WDATA.box.top]
556
  .lp4: mov     eax,[edi+WDATA.box.top]
557
        add     eax,[edi+WDATA.box.height]
557
        add     eax,[edi+WDATA.box.height]
558
    mov    ebx,[0x0000fe04]
558
    mov    ebx,[ScreenHeight]
559
;    inc    ebx
559
;    inc    ebx
560
    cmp    eax,ebx
560
    cmp    eax,ebx
561
    jle    .lp6
561
    jle    .lp6
562
        mov     eax,[edi+WDATA.box.height]
562
        mov     eax,[edi+WDATA.box.height]
563
    sub    eax,ebx
563
    sub    eax,ebx
Line 584... Line 584...
584
    movzx ecx,word [edi+WDATA.box.width]
584
    movzx ecx,word [edi+WDATA.box.width]
585
    movzx edx,word [edi+WDATA.box.height]
585
    movzx edx,word [edi+WDATA.box.height]
Line 586... Line 586...
586
 
586
 
587
    mov   esi,ecx             ; check x pos
587
    mov   esi,ecx             ; check x pos
588
    add   esi,eax
588
    add   esi,eax
589
    cmp   esi,[0xfe00]
589
    cmp   esi,[ScreenWidth]
590
    jbe   x_pos_ok
590
    jbe   x_pos_ok
591
    mov   [edi+WDATA.box.left],dword 0
591
    mov   [edi+WDATA.box.left],dword 0
592
    xor   eax, eax
592
    xor   eax, eax
Line 593... Line 593...
593
  x_pos_ok:
593
  x_pos_ok:
594
 
594
 
595
    mov   esi,edx             ; check y pos
595
    mov   esi,edx             ; check y pos
596
    add   esi,ebx
596
    add   esi,ebx
597
    cmp   esi,[0xfe04]
597
    cmp   esi,[ScreenHeight]
598
    jbe   y_pos_ok
598
    jbe   y_pos_ok
599
    mov   [edi+WDATA.box.top],dword 0
599
    mov   [edi+WDATA.box.top],dword 0
Line 600... Line 600...
600
    mov   ebx,0
600
    mov   ebx,0
601
  y_pos_ok:
601
  y_pos_ok:
602
 
602
 
603
    mov   esi,ecx             ; check x size
603
    mov   esi,ecx             ; check x size
604
    add   esi,eax
604
    add   esi,eax
605
    cmp   esi,[0xfe00]
605
    cmp   esi,[ScreenWidth]
606
    jbe   x_size_ok
606
    jbe   x_size_ok
Line 607... Line 607...
607
    mov   ecx,[0xfe00]
607
    mov   ecx,[ScreenWidth]
608
    mov   [edi+WDATA.box.width],ecx
608
    mov   [edi+WDATA.box.width],ecx
609
  x_size_ok:
609
  x_size_ok:
610
 
610
 
611
    mov   esi,edx             ; check y size
611
    mov   esi,edx             ; check y size
612
    add   esi,ebx
612
    add   esi,ebx
613
    cmp   esi,[0xfe04]
613
    cmp   esi,[ScreenHeight]
Line 614... Line 614...
614
    jbe   y_size_ok
614
    jbe   y_size_ok
Line 632... Line 632...
632
 
632
 
633
    mov   eax,[timer_ticks]
633
    mov   eax,[timer_ticks]
634
    cmp   [new_window_starting],eax
634
    cmp   [new_window_starting],eax
Line 635... Line 635...
635
    jb    swml1
635
    jb    swml1
636
 
636
 
Line 637... Line 637...
637
    mov   [0xfff4],byte 0  ; no mouse background
637
    mov   [MOUSE_BACKGROUND],byte 0  ; no mouse background
Line 638... Line 638...
638
    mov   [0xfff5],byte 0  ; draw mouse
638
    mov   [DONT_DRAW_MOUSE],byte 0  ; draw mouse
Line 956... Line 956...
956
        inc   esi
956
        inc   esi
957
        movzx ebx, word [esi*2 + WIN_STACK]
957
        movzx ebx, word [esi*2 + WIN_STACK]
958
        mov   [ebx*2 + WIN_POS], si
958
        mov   [ebx*2 + WIN_POS], si
959
        jmp   waloop2
959
        jmp   waloop2
960
      wacont2:
960
      wacont2:
961
        mov   [0xf400], byte 0           ; empty keyboard buffer
961
        mov   [KEY_COUNT], byte 0           ; empty keyboard buffer
962
        mov   [0xf500], byte 0           ; empty button buffer
962
        mov   [BTN_COUNT], byte 0           ; empty button buffer
963
        popad
963
        popad
964
        ret
964
        ret
Line 965... Line 965...
965
 
965
 
Line 1051... Line 1051...
1051
        call  checkwindowdraw      ; draw window on activation ?
1051
        call  checkwindowdraw      ; draw window on activation ?
1052
        test  ecx, ecx
1052
        test  ecx, ecx
1053
        jz    .do_not_draw
1053
        jz    .do_not_draw
Line 1054... Line 1054...
1054
 
1054
 
1055
        popad
1055
        popad
1056
        mov   [0xfb44], byte 1     ; do draw mouse
1056
        mov   [MOUSE_DOWN], byte 1     ; do draw mouse
Line 1057... Line 1057...
1057
        call  windowactivate
1057
        call  windowactivate
1058
 
1058
 
1059
        ; update screen info
1059
        ; update screen info
Line 1076... Line 1076...
1076
        movzx esi, word [WIN_POS + edi * 2]
1076
        movzx esi, word [WIN_POS + edi * 2]
1077
        call  setscreen
1077
        call  setscreen
1078
        popad
1078
        popad
Line 1079... Line 1079...
1079
 
1079
 
1080
    mov   [edi + WDATA.fl_redraw], 1  ; redraw flag for app
1080
    mov   [edi + WDATA.fl_redraw], 1  ; redraw flag for app
Line 1081... Line 1081...
1081
    mov   [0xfb44],byte 0             ; mouse down checks
1081
    mov   [MOUSE_DOWN],byte 0             ; mouse down checks
Line 1082... Line 1082...
1082
 
1082
 
Line 1083... Line 1083...
1083
        ret
1083
        ret
Line 1084... Line 1084...
1084
 
1084
 
1085
     .do_not_draw:
1085
     .do_not_draw:
1086
 
1086
 
1087
        popad
1087
        popad
1088
 
1088
 
Line 1089... Line 1089...
1089
        call  windowactivate
1089
        call  windowactivate
1090
        mov   [0xfb44],byte 0  ; mouse down checks
1090
        mov   [MOUSE_DOWN],byte 0  ; mouse down checks
Line 1154... Line 1154...
1154
        mov   edx, ebx
1154
        mov   edx, ebx
1155
        add   ecx, [edi+WDATA.box.width]
1155
        add   ecx, [edi+WDATA.box.width]
1156
        add   edx, [edi+WDATA.box.height]
1156
        add   edx, [edi+WDATA.box.height]
1157
        call  calculatescreen
1157
        call  calculatescreen
1158
.done:
1158
.done:
1159
        mov   [0xfff4],byte 0 ; no mouse under
1159
        mov   [MOUSE_BACKGROUND],byte 0 ; no mouse under
1160
.skip_redrawings:
1160
.skip_redrawings:
1161
        popfd
1161
        popfd
1162
        ret
1162
        ret
Line 1184... Line 1184...
1184
  .restore:
1184
  .restore:
1185
        call  restore_minimized_window
1185
        call  restore_minimized_window
1186
  .continue:
1186
  .continue:
1187
  .no_minimizing:
1187
  .no_minimizing:
Line 1188... Line 1188...
1188
 
1188
 
1189
        cmp   [0xfb40],byte 0    ; mouse buttons pressed ?
1189
        cmp   [BTN_DOWN],byte 0    ; mouse buttons pressed ?
1190
        jne   .mouse_buttons_pressed
1190
        jne   .mouse_buttons_pressed
1191
        popad
1191
        popad
1192
        ret
1192
        ret
Line 1210... Line 1210...
1210
        mov   eax,ecx
1210
        mov   eax,ecx
1211
        mov   ebx,edx
1211
        mov   ebx,edx
1212
        test    [edi+WDATA.fl_wstate],WSTATE_MINIMIZED
1212
        test    [edi+WDATA.fl_wstate],WSTATE_MINIMIZED
1213
        jnz     cwloop
1213
        jnz     cwloop
Line 1214... Line 1214...
1214
 
1214
 
1215
       movzx  eax, word [0xfb0a]
1215
       movzx  eax, word [MOUSE_X]
Line 1216... Line 1216...
1216
       movzx  ebx, word [0xfb0c]
1216
       movzx  ebx, word [MOUSE_Y]
1217
 
1217
 
1218
        cmp   ecx, eax
1218
        cmp   ecx, eax
1219
        jae   cwloop
1219
        jae   cwloop
Line 1290... Line 1290...
1290
        mov   edx, ecx
1290
        mov   edx, ecx
1291
        sub   edx, [latest_window_touch]
1291
        sub   edx, [latest_window_touch]
1292
        mov   [latest_window_touch], ecx
1292
        mov   [latest_window_touch], ecx
1293
        mov   [latest_window_touch_delta], edx
1293
        mov   [latest_window_touch_delta], edx
Line 1294... Line 1294...
1294
 
1294
 
1295
        mov   cl, [0xfb40]     ; save for shade check
1295
        mov   cl, [BTN_DOWN]     ; save for shade check
1296
        mov   [do_resize], cl
1296
        mov   [do_resize], cl
1297
     no_emulation_righ_button:
1297
     no_emulation_righ_button:
1298
    mov   ecx, [edi + WDATA.box.left]
1298
    mov   ecx, [edi + WDATA.box.left]
Line 1310... Line 1310...
1310
        pop   edx ecx eax
1310
        pop   edx ecx eax
Line 1311... Line 1311...
1311
 
1311
 
1312
        sub   eax, ecx
1312
        sub   eax, ecx
Line 1313... Line 1313...
1313
        sub   ebx, edx
1313
        sub   ebx, edx
1314
 
1314
 
Line 1315... Line 1315...
1315
        mov   esi, [0xfb0a]
1315
        mov   esi, [MOUSE_X]
1316
        mov   [0xf300], esi
1316
        mov   [WIN_TEMP_XY], esi
1317
 
1317
 
1318
        pushad           ; wait for putimages to finish
1318
        pushad           ; wait for putimages to finish
Line 1338... Line 1338...
1338
        pop eax
1338
        pop eax
Line 1339... Line 1339...
1339
 
1339
 
Line 1340... Line 1340...
1340
        call  drawwindowframes
1340
        call  drawwindowframes
1341
 
1341
 
Line 1342... Line 1342...
1342
        mov   [reposition],0
1342
        mov   [reposition],0
Line 1343... Line 1343...
1343
        mov   [0xfb44],byte 1   ; no reaction to mouse up/down
1343
        mov   [MOUSE_DOWN],byte 1   ; no reaction to mouse up/down
Line 1344... Line 1344...
1344
 
1344
 
Line 1345... Line 1345...
1345
        ; move window
1345
        ; move window
Line 1346... Line 1346...
1346
 
1346
 
Line 1347... Line 1347...
1347
      newchm:
1347
      newchm:
Line 1348... Line 1348...
1348
 
1348
 
Line 1349... Line 1349...
1349
        mov   [0xfff5],byte 1
1349
        mov   [DONT_DRAW_MOUSE],byte 1
1350
 
1350
 
1351
        call  checkidle
1351
        call  checkidle
Line 1352... Line 1352...
1352
 
1352
 
1353
        call  checkVga_N13
1353
        call  checkVga_N13
1354
 
1354
 
Line 1355... Line 1355...
1355
        mov   [0xfff4],byte 0
1355
        mov   [MOUSE_BACKGROUND],byte 0
1356
 
1356
 
1357
        call  [draw_pointer]
1357
        call  [draw_pointer]
1358
 
1358
 
Line 1359... Line 1359...
1359
        pushad
1359
        pushad
1360
        call   stack_handler
1360
        call   stack_handler
Line 1361... Line 1361...
1361
        popad
1361
        popad
Line 1362... Line 1362...
1362
 
1362
 
1363
        mov   esi,[0xf300]
1363
        mov   esi,[WIN_TEMP_XY]
Line 1364... Line 1364...
1364
        cmp   esi,[0xfb0a]
1364
        cmp   esi,[MOUSE_X]
1365
        je    cwb
1365
        je    cwb
Line 1366... Line 1366...
1366
 
1366
 
Line 1413... Line 1413...
1413
        ;shr   edx,5
1413
        ;shr   edx,5
1414
        ;shl   edx,8
1414
        ;shl   edx,8
1415
        ;add   edx,0x80000                 ; process base at 0x80000+
1415
        ;add   edx,0x80000                 ; process base at 0x80000+
1416
    lea   edx, [SLOT_BASE + edx*8]
1416
    lea   edx, [SLOT_BASE + edx*8]
Line 1417... Line 1417...
1417
 
1417
 
1418
        movzx eax,word [0xfb0a]
1418
        movzx eax,word [MOUSE_X]
1419
    cmp   eax,[edi + WDATA.box.left]
1419
    cmp   eax,[edi + WDATA.box.left]
1420
        jb    nnepx
1420
        jb    nnepx
1421
    sub   eax,[edi + WDATA.box.left]
1421
    sub   eax,[edi + WDATA.box.left]
1422
        cmp   eax,32 ; [edx+0x90+8]
1422
        cmp   eax,32 ; [edx+0x90+8]
Line 1426... Line 1426...
1426
        mov   [npxe],eax
1426
        mov   [npxe],eax
1427
      nnepx:
1427
      nnepx:
Line 1428... Line 1428...
1428
 
1428
 
1429
        call    get_rolledup_height
1429
        call    get_rolledup_height
1430
        mov     ebx,eax
1430
        mov     ebx,eax
1431
        movzx eax,word [0xfb0c]
1431
        movzx eax,word [MOUSE_Y]
1432
    cmp   eax,[edi + WDATA.box.top]
1432
    cmp   eax,[edi + WDATA.box.top]
1433
        jb    nnepy
1433
        jb    nnepy
1434
    sub   eax,[edi + WDATA.box.top]
1434
    sub   eax,[edi + WDATA.box.top]
1435
        cmp     eax,ebx ; [edx+0x90+12]
1435
        cmp     eax,ebx ; [edx+0x90+12]
Line 1446... Line 1446...
1446
 
1446
 
1447
        pop   bx
1447
        pop   bx
1448
        pop   ax
1448
        pop   ax
Line 1449... Line 1449...
1449
        call  drawwindowframes
1449
        call  drawwindowframes
1450
 
1450
 
Line 1451... Line 1451...
1451
        mov   esi,[0xfb0a]
1451
        mov   esi,[MOUSE_X]
1452
        mov   [0xf300],esi
1452
        mov   [WIN_TEMP_XY],esi
1453
 
1453
 
1454
      cwb:
1454
      cwb:
1455
        cmp   [0xfb40],byte 0
1455
        cmp   [BTN_DOWN],byte 0
1456
        jne   newchm
1456
        jne   newchm
1457
                                     ; new position done
1457
                                     ; new position done
1458
        mov     [0xfff5],byte 1
1458
        mov     [DONT_DRAW_MOUSE],byte 1
1459
        mov     cl,0
1459
        mov     cl,0
1460
        test    [edi+WDATA.fl_wstate],WSTATE_MAXIMIZED
1460
        test    [edi+WDATA.fl_wstate],WSTATE_MAXIMIZED
Line 1564... Line 1564...
1564
 
1564
 
Line 1565... Line 1565...
1565
      no_fullscreen_restore:
1565
      no_fullscreen_restore:
1566
 
1566
 
1567
        mov   eax,[edi+WDATA.box.top]                 ; check Y inside screen
1567
        mov   eax,[edi+WDATA.box.top]                 ; check Y inside screen
1568
        add   eax,[edi+WDATA.box.height]
1568
        add   eax,[edi+WDATA.box.height]
1569
        cmp   eax,[0xfe04]
1569
        cmp   eax,[ScreenHeight]
1570
        jbe   no_window_sizing
1570
        jbe   no_window_sizing
1571
        mov   eax,[edi+WDATA.box.left]                 ; check X inside screen
1571
        mov   eax,[edi+WDATA.box.left]                 ; check X inside screen
1572
        add   eax,[edi+WDATA.box.width]
1572
        add   eax,[edi+WDATA.box.width]
1573
        cmp   eax,[0xfe00]
1573
        cmp   eax,[ScreenWidth]
1574
        jbe   no_window_sizing
1574
        jbe   no_window_sizing
1575
        mov   eax,[0xfe00]
1575
        mov   eax,[ScreenWidth]
1576
        sub   eax,[edi+WDATA.box.width]
1576
        sub   eax,[edi+WDATA.box.width]
1577
        mov   [edi+WDATA.box.left],eax
1577
        mov   [edi+WDATA.box.left],eax
1578
        mov   eax,[0xfe04]
1578
        mov   eax,[ScreenHeight]
1579
        sub   eax,[edi+WDATA.box.height]
1579
        sub   eax,[edi+WDATA.box.height]
1580
        mov   [edi+WDATA.box.top],eax
1580
        mov   [edi+WDATA.box.top],eax
Line 1581... Line 1581...
1581
        call  set_window_clientbox
1581
        call  set_window_clientbox
Line 1582... Line 1582...
1582
      no_window_sizing:
1582
      no_window_sizing:
1583
 
1583
 
Line 1584... Line 1584...
1584
        popad
1584
        popad
Line 1585... Line 1585...
1585
 
1585
 
1586
        cmp   [reposition],0
1586
        cmp   [reposition],0
1587
        je    retwm
1587
        je    retwm
Line 1613... Line 1613...
1613
 
1613
 
Line 1614... Line 1614...
1614
        mov     [edi+WDATA.fl_redraw],1
1614
        mov     [edi+WDATA.fl_redraw],1
1615
 
1615
 
1616
        mov   ecx,100         ; wait to avoid mouse residuals
1616
        mov   ecx,100         ; wait to avoid mouse residuals
1617
      waitre2:
1617
      waitre2:
1618
        mov   [0xfff5],byte 1
1618
        mov   [DONT_DRAW_MOUSE],byte 1
1619
        call  checkidle
1619
        call  checkidle
1620
        cmp     [edi+WDATA.fl_redraw],0
1620
        cmp     [edi+WDATA.fl_redraw],0
Line 1621... Line 1621...
1621
        jz    retwm
1621
        jz    retwm
Line 1622... Line 1622...
1622
        loop  waitre2
1622
        loop  waitre2
1623
 
1623
 
1624
      retwm:
1624
      retwm:
Line 1625... Line 1625...
1625
 
1625
 
1626
        mov   [0xfff5],byte 0 ; mouse pointer
1626
        mov   [DONT_DRAW_MOUSE],byte 0 ; mouse pointer
Line 1627... Line 1627...
1627
        mov   [0xfff4],byte 0 ; no mouse under
1627
        mov   [MOUSE_BACKGROUND],byte 0 ; no mouse under