File subsystem: fixed error in function 70.5 for CD

Window subsystem: now when window coordinates are changed,
                  client area is changed too

git-svn-id: svn://kolibrios.org@150 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Evgeny Grechnikov (Diamond) 2006-09-18 12:23:52 +00:00
parent 94b3a5b74e
commit 18c3550908
4 changed files with 31 additions and 28 deletions

View File

@ -474,7 +474,6 @@ fs_CdGetFileInfo:
mov edi, edx mov edi, edx
call cd_get_parameters_of_file_1 call cd_get_parameters_of_file_1
and dword [edi+4], 0 and dword [edi+4], 0
pop ebp
pop ebp edi pop ebp edi
xor eax, eax xor eax, eax
ret ret

View File

@ -474,7 +474,6 @@ fs_CdGetFileInfo:
mov edi, edx mov edi, edx
call cd_get_parameters_of_file_1 call cd_get_parameters_of_file_1
and dword [edi+4], 0 and dword [edi+4], 0
pop ebp
pop ebp edi pop ebp edi
xor eax, eax xor eax, eax
ret ret

View File

@ -516,56 +516,56 @@ display_settings:
repos_windows: repos_windows:
mov ecx,[0x3004] mov ecx,[0x3004]
mov esi,0x20*2 mov edi,0x20*2
mov byte[0x0000fff0],1 mov byte[0x0000fff0],1
dec ecx dec ecx
jge @f jge @f
ret ret
@@: mov [esi+WDATA.fl_redraw],1 @@: mov [edi+WDATA.fl_redraw],1
test [esi+WDATA.fl_wstate],WSTATE_MAXIMIZED test [edi+WDATA.fl_wstate],WSTATE_MAXIMIZED
jz .lp2 jz .lp2
mov eax,[screen_workarea.left] mov eax,[screen_workarea.left]
mov [esi+WDATA.box.left],eax mov [edi+WDATA.box.left],eax
sub eax,[screen_workarea.right] sub eax,[screen_workarea.right]
neg eax neg eax
mov [esi+WDATA.box.width],eax mov [edi+WDATA.box.width],eax
mov eax,[screen_workarea.top] mov eax,[screen_workarea.top]
mov [esi+WDATA.box.top],eax mov [edi+WDATA.box.top],eax
test [esi+WDATA.fl_wstate],WSTATE_ROLLEDUP test [edi+WDATA.fl_wstate],WSTATE_ROLLEDUP
jnz .lp1 jnz .lp1
sub eax,[screen_workarea.bottom] sub eax,[screen_workarea.bottom]
neg eax neg eax
mov [esi+WDATA.box.height],eax mov [edi+WDATA.box.height],eax
.lp1: add esi,0x20 .lp1:
call set_window_clientbox
add edi,0x20
loop @b loop @b
ret ret
.lp2: mov eax,[esi+WDATA.box.left] .lp2: mov eax,[edi+WDATA.box.left]
add eax,[esi+WDATA.box.width] add eax,[edi+WDATA.box.width]
mov ebx,[0x0000fe00] mov ebx,[0x0000fe00]
; inc ebx ; inc ebx
cmp eax,ebx cmp eax,ebx
jle .lp4 jle .lp4
mov eax,[esi+WDATA.box.width] mov eax,[edi+WDATA.box.width]
sub eax,ebx sub eax,ebx
jle .lp3 jle .lp3
mov [esi+WDATA.box.width],ebx mov [edi+WDATA.box.width],ebx
.lp3: sub ebx,[esi+WDATA.box.width] .lp3: sub ebx,[edi+WDATA.box.width]
mov [esi+WDATA.box.left],ebx mov [esi+WDATA.box.left],ebx
.lp4: mov eax,[esi+WDATA.box.top] .lp4: mov eax,[edi+WDATA.box.top]
add eax,[esi+WDATA.box.height] add eax,[edi+WDATA.box.height]
mov ebx,[0x0000fe04] mov ebx,[0x0000fe04]
; inc ebx ; inc ebx
cmp eax,ebx cmp eax,ebx
jle .lp6 jle .lp6
mov eax,[esi+WDATA.box.height] mov eax,[edi+WDATA.box.height]
sub eax,ebx sub eax,ebx
jle .lp5 jle .lp5
mov [esi+WDATA.box.height],ebx mov [edi+WDATA.box.height],ebx
.lp5: sub ebx,[esi+WDATA.box.height] .lp5: sub ebx,[edi+WDATA.box.height]
mov [esi+WDATA.box.top],ebx mov [edi+WDATA.box.top],ebx
.lp6: add esi,0x20 .lp6: jmp .lp1
loop @b
ret
uglobal uglobal
common_colours: common_colours:
@ -1463,6 +1463,7 @@ checkwindows:
mov [edi + WDATA.box.width],eax mov [edi + WDATA.box.width],eax
mov eax,[npye] mov eax,[npye]
mov [edi + WDATA.box.height],eax mov [edi + WDATA.box.height],eax
call set_window_clientbox
@@: mov [reposition],cl @@: mov [reposition],cl
@ -1511,6 +1512,7 @@ checkwindows:
mov eax,[screen_workarea.bottom] mov eax,[screen_workarea.bottom]
sub eax,[screen_workarea.top] sub eax,[screen_workarea.top]
@@: mov [edi+WDATA.box.height],eax @@: mov [edi+WDATA.box.height],eax
call set_window_clientbox
no_window_shade: no_window_shade:
@ -1535,7 +1537,7 @@ checkwindows:
neg eax neg eax
mov [edi+WDATA.box.height],eax mov [edi+WDATA.box.height],eax
@@: @@:
jmp no_fullscreen_restore jmp restore_from_fullscreen.clientbox
restore_from_fullscreen: restore_from_fullscreen:
and [edi+WDATA.fl_wstate],not WSTATE_MAXIMIZED and [edi+WDATA.fl_wstate],not WSTATE_MAXIMIZED
push [edi+WDATA.box.height] push [edi+WDATA.box.height]
@ -1550,6 +1552,8 @@ checkwindows:
jz @f jz @f
mov [edi+WDATA.box.height],eax mov [edi+WDATA.box.height],eax
@@: @@:
.clientbox:
call set_window_clientbox
no_fullscreen_restore: no_fullscreen_restore:
@ -1567,6 +1571,7 @@ checkwindows:
mov eax,[0xfe04] mov eax,[0xfe04]
sub eax,[edi+WDATA.box.height] sub eax,[edi+WDATA.box.height]
mov [edi+WDATA.box.top],eax mov [edi+WDATA.box.top],eax
call set_window_clientbox
no_window_sizing: no_window_sizing:
popad popad

View File

@ -3010,10 +3010,9 @@ sys_set_window:
mov word[edi+WDATA.box.left],ax mov word[edi+WDATA.box.left],ax
mov word[edi+WDATA.box.top],bx mov word[edi+WDATA.box.top],bx
call set_window_clientbox
call check_window_position call check_window_position
call set_window_clientbox
push ecx esi edi ; save for window fullscreen/resize push ecx esi edi ; save for window fullscreen/resize
;mov esi,edi ;mov esi,edi
@ -3134,6 +3133,7 @@ sys_window_move:
.no_y_resizing: .no_y_resizing:
call check_window_position call check_window_position
call set_window_clientbox
pushad ; save for window fullscreen/resize pushad ; save for window fullscreen/resize
mov esi,edi mov esi,edi