forked from KolibriOS/kolibrios
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:
parent
94b3a5b74e
commit
18c3550908
@ -474,7 +474,6 @@ fs_CdGetFileInfo:
|
||||
mov edi, edx
|
||||
call cd_get_parameters_of_file_1
|
||||
and dword [edi+4], 0
|
||||
pop ebp
|
||||
pop ebp edi
|
||||
xor eax, eax
|
||||
ret
|
||||
|
@ -474,7 +474,6 @@ fs_CdGetFileInfo:
|
||||
mov edi, edx
|
||||
call cd_get_parameters_of_file_1
|
||||
and dword [edi+4], 0
|
||||
pop ebp
|
||||
pop ebp edi
|
||||
xor eax, eax
|
||||
ret
|
||||
|
@ -516,56 +516,56 @@ display_settings:
|
||||
|
||||
repos_windows:
|
||||
mov ecx,[0x3004]
|
||||
mov esi,0x20*2
|
||||
mov edi,0x20*2
|
||||
mov byte[0x0000fff0],1
|
||||
dec ecx
|
||||
jge @f
|
||||
ret
|
||||
@@: mov [esi+WDATA.fl_redraw],1
|
||||
test [esi+WDATA.fl_wstate],WSTATE_MAXIMIZED
|
||||
@@: mov [edi+WDATA.fl_redraw],1
|
||||
test [edi+WDATA.fl_wstate],WSTATE_MAXIMIZED
|
||||
jz .lp2
|
||||
mov eax,[screen_workarea.left]
|
||||
mov [esi+WDATA.box.left],eax
|
||||
mov [edi+WDATA.box.left],eax
|
||||
sub eax,[screen_workarea.right]
|
||||
neg eax
|
||||
mov [esi+WDATA.box.width],eax
|
||||
mov [edi+WDATA.box.width],eax
|
||||
mov eax,[screen_workarea.top]
|
||||
mov [esi+WDATA.box.top],eax
|
||||
test [esi+WDATA.fl_wstate],WSTATE_ROLLEDUP
|
||||
mov [edi+WDATA.box.top],eax
|
||||
test [edi+WDATA.fl_wstate],WSTATE_ROLLEDUP
|
||||
jnz .lp1
|
||||
sub eax,[screen_workarea.bottom]
|
||||
neg eax
|
||||
mov [esi+WDATA.box.height],eax
|
||||
.lp1: add esi,0x20
|
||||
mov [edi+WDATA.box.height],eax
|
||||
.lp1:
|
||||
call set_window_clientbox
|
||||
add edi,0x20
|
||||
loop @b
|
||||
ret
|
||||
.lp2: mov eax,[esi+WDATA.box.left]
|
||||
add eax,[esi+WDATA.box.width]
|
||||
.lp2: mov eax,[edi+WDATA.box.left]
|
||||
add eax,[edi+WDATA.box.width]
|
||||
mov ebx,[0x0000fe00]
|
||||
; inc ebx
|
||||
cmp eax,ebx
|
||||
jle .lp4
|
||||
mov eax,[esi+WDATA.box.width]
|
||||
mov eax,[edi+WDATA.box.width]
|
||||
sub eax,ebx
|
||||
jle .lp3
|
||||
mov [esi+WDATA.box.width],ebx
|
||||
.lp3: sub ebx,[esi+WDATA.box.width]
|
||||
mov [edi+WDATA.box.width],ebx
|
||||
.lp3: sub ebx,[edi+WDATA.box.width]
|
||||
mov [esi+WDATA.box.left],ebx
|
||||
.lp4: mov eax,[esi+WDATA.box.top]
|
||||
add eax,[esi+WDATA.box.height]
|
||||
.lp4: mov eax,[edi+WDATA.box.top]
|
||||
add eax,[edi+WDATA.box.height]
|
||||
mov ebx,[0x0000fe04]
|
||||
; inc ebx
|
||||
cmp eax,ebx
|
||||
jle .lp6
|
||||
mov eax,[esi+WDATA.box.height]
|
||||
mov eax,[edi+WDATA.box.height]
|
||||
sub eax,ebx
|
||||
jle .lp5
|
||||
mov [esi+WDATA.box.height],ebx
|
||||
.lp5: sub ebx,[esi+WDATA.box.height]
|
||||
mov [esi+WDATA.box.top],ebx
|
||||
.lp6: add esi,0x20
|
||||
loop @b
|
||||
ret
|
||||
mov [edi+WDATA.box.height],ebx
|
||||
.lp5: sub ebx,[edi+WDATA.box.height]
|
||||
mov [edi+WDATA.box.top],ebx
|
||||
.lp6: jmp .lp1
|
||||
|
||||
uglobal
|
||||
common_colours:
|
||||
@ -1463,6 +1463,7 @@ checkwindows:
|
||||
mov [edi + WDATA.box.width],eax
|
||||
mov eax,[npye]
|
||||
mov [edi + WDATA.box.height],eax
|
||||
call set_window_clientbox
|
||||
|
||||
@@: mov [reposition],cl
|
||||
|
||||
@ -1511,6 +1512,7 @@ checkwindows:
|
||||
mov eax,[screen_workarea.bottom]
|
||||
sub eax,[screen_workarea.top]
|
||||
@@: mov [edi+WDATA.box.height],eax
|
||||
call set_window_clientbox
|
||||
|
||||
no_window_shade:
|
||||
|
||||
@ -1535,7 +1537,7 @@ checkwindows:
|
||||
neg eax
|
||||
mov [edi+WDATA.box.height],eax
|
||||
@@:
|
||||
jmp no_fullscreen_restore
|
||||
jmp restore_from_fullscreen.clientbox
|
||||
restore_from_fullscreen:
|
||||
and [edi+WDATA.fl_wstate],not WSTATE_MAXIMIZED
|
||||
push [edi+WDATA.box.height]
|
||||
@ -1550,6 +1552,8 @@ checkwindows:
|
||||
jz @f
|
||||
mov [edi+WDATA.box.height],eax
|
||||
@@:
|
||||
.clientbox:
|
||||
call set_window_clientbox
|
||||
|
||||
no_fullscreen_restore:
|
||||
|
||||
@ -1567,6 +1571,7 @@ checkwindows:
|
||||
mov eax,[0xfe04]
|
||||
sub eax,[edi+WDATA.box.height]
|
||||
mov [edi+WDATA.box.top],eax
|
||||
call set_window_clientbox
|
||||
no_window_sizing:
|
||||
|
||||
popad
|
||||
|
@ -3010,10 +3010,9 @@ sys_set_window:
|
||||
mov word[edi+WDATA.box.left],ax
|
||||
mov word[edi+WDATA.box.top],bx
|
||||
|
||||
call set_window_clientbox
|
||||
|
||||
call check_window_position
|
||||
|
||||
call set_window_clientbox
|
||||
|
||||
push ecx esi edi ; save for window fullscreen/resize
|
||||
;mov esi,edi
|
||||
@ -3134,6 +3133,7 @@ sys_window_move:
|
||||
.no_y_resizing:
|
||||
|
||||
call check_window_position
|
||||
call set_window_clientbox
|
||||
|
||||
pushad ; save for window fullscreen/resize
|
||||
mov esi,edi
|
||||
|
Loading…
Reference in New Issue
Block a user