439,7 → 439,12 |
pop ecx eax |
ret |
;------------------------------------------------------------------------------ |
|
iglobal |
win_zmodi db ZPOS_DESKTOP,\ |
ZPOS_ALWAYS_BACK,\ |
ZPOS_NORMAL,\ |
ZPOS_ALWAYS_TOP |
endg |
align 4 |
;------------------------------------------------------------------------------ |
calculatescreen: ;///////////////////////////////////////////////////////////// |
469,7 → 474,7 |
|
push edx ecx ebx eax |
|
mov dword[esp+10h], ZPOS_DESKTOP |
mov dword[esp+14], 0 |
;-------------------------------------- |
align 4 |
.layout: |
488,7 → 493,8 |
test [edi + WDATA.fl_wstate], WSTATE_MINIMIZED |
jnz .skip_window |
|
mov eax, [esp+10h] |
mov eax, [esp+14] |
mov al, [eax+win_zmodi] |
cmp [edi + WDATA.z_modif], al |
jne .skip_window |
|
542,9 → 548,9 |
dec ebp |
jnz .next_window |
;--------------------------------------------- |
inc dword[esp+10h] |
cmp dword[esp+10h], ZPOS_ALWAYS_TOP |
jle .layout |
inc dword[esp+14] |
cmp dword[esp+14], ZPOS_ALWAYS_TOP |
jbe .layout |
;--------------------------------------------- |
mov esi, [TASK_COUNT] |
movzx edi, word[WIN_POS + esi * 2] |
1006,7 → 1012,7 |
movzx esi, word[WIN_POS + edi * 2] |
call window._.set_screen |
|
call window._.set_top_wnd |
call window._.set_top_wnd ;Fantomer |
|
inc [_display.mask_seqno] |
popad |
2426,25 → 2432,9 |
;------------------------------------------------------------------------------ |
align 4 |
;------------------------------------------------------------------------------ |
window._.redraw_top_wnd: ;//////////////////////////////////////////////////////// |
;------------------------------------------------------------------------------ |
;? redraw all windows one above the window |
;------------------------------------------------------------------------------ |
;> eax = left |
;> ebx = top |
;> ecx = right |
;> edx = bottom |
;> esi = process number |
;! corrupted edi |
;------------------------------------------------------------------------------ |
push 0 |
jmp window._.set_top_wnd.go |
|
align 4 |
;------------------------------------------------------------------------------ |
window._.set_top_wnd: ;//////////////////////////////////////////////////////// |
;------------------------------------------------------------------------------ |
;? call set_screen for all windows one above the window |
;? updates all windows one above the window |
;------------------------------------------------------------------------------ |
;> eax = left |
;> ebx = top |
2453,9 → 2443,13 |
;> esi = process number |
;! corrupted edi |
;------------------------------------------------------------------------------ |
movzx edi, word[WIN_POS + esi * 2] |
shl edi, 5 |
cmp [edi + window_data + WDATA.z_modif], ZPOS_ALWAYS_TOP |
jne @f |
ret |
@@: |
|
push 1 |
.go: |
push esi |
pushfd |
cli |
2465,16 → 2459,12 |
cmp ebp, 1 |
jbe .exit |
|
shl esi, 5 |
cmp [esi + window_data + WDATA.z_modif], ZPOS_ALWAYS_TOP |
je .exit |
|
push eax ;for num layout |
push edx ecx ebx eax |
|
movsx eax, byte [esi + window_data + WDATA.z_modif] |
movzx eax, byte [edi + window_data + WDATA.z_modif] |
inc eax |
mov dword[esp+10h], eax |
mov dword[esp+14], eax |
;-------------------------------------- |
align 4 |
.layout: |
2493,7 → 2483,8 |
test [edi + WDATA.fl_wstate], WSTATE_MINIMIZED |
jnz .skip_window |
|
mov eax, [esp+10h] |
mov eax, [esp+14] |
mov al, [eax+win_zmodi] |
cmp [edi + WDATA.z_modif], al |
jne .skip_window |
|
2536,17 → 2527,12 |
;-------------------------------------- |
align 4 |
@@: |
cmp dword[esp+32], 0 |
je .set_fl_redraw |
|
push esi |
movzx esi, word[WIN_POS + esi * 2] |
call window._.set_screen |
pop esi |
jmp @f |
.set_fl_redraw: |
|
mov [edi + WDATA.fl_redraw], 1 ;set redraw flag |
@@: |
;-------------------------------------- |
align 4 |
.skip_window: |
2554,9 → 2540,9 |
dec ebp |
jnz .next_window |
;-------------------------------------- |
inc dword[esp+10h] |
cmp byte[esp+10h], ZPOS_ALWAYS_TOP |
jle .layout |
inc dword[esp+14] |
cmp dword[esp+14], ZPOS_ALWAYS_TOP |
jbe .layout |
;------------------------------------- |
|
pop eax ebx ecx edx |
2569,7 → 2555,6 |
popfd |
pop esi |
|
add esp, 4 ;dword for 0/1 - set_screen/fl_redraw |
ret |
|
|