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 |