[KERNEL] The window subsystem has been redesigned:

-extended WDATA structures up to 128 bytes
-added the background_windows constant
-the draw_data array has been deleted
-APPDATA.window and WDATA.thread fields added
-minor fixes in the operation of external file system drivers

git-svn-id: svn://kolibrios.org@9930 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Doczom
2023-08-18 20:51:33 +00:00
parent 48e0317921
commit 0a5beb0bc0
13 changed files with 242 additions and 227 deletions

View File

@@ -566,10 +566,6 @@ destroy_thread:
mov edi, esi
mov ecx, sizeof.WDATA/4
rep stosd
lea edi, [esi - window_data + draw_data]
mov ecx, sizeof.WDATA/4
rep stosd
popa
; debuggee test

View File

@@ -969,8 +969,6 @@ proc set_app_params stdcall,slot:dword, params:dword, flags:dword
mov [SLOT_BASE + ebx + APPDATA.fd_obj], edx
mov [SLOT_BASE + ebx + APPDATA.bk_obj], edx
mov ecx, [def_cursor]
mov [SLOT_BASE + ebx + APPDATA.cursor], ecx
mov eax, [pl0_stack]
mov [SLOT_BASE + ebx + APPDATA.pl0_stack], eax
add eax, RING0_STACK_SIZE
@@ -993,22 +991,29 @@ proc set_app_params stdcall,slot:dword, params:dword, flags:dword
mov eax, [slot]
mov [SLOT_BASE + ebx + APPDATA.wnd_number], al
mov ebx, eax
shl ebx, BSF sizeof.WDATA
lea ecx, [draw_data + ebx];ecx - pointer to draw data
;mov ebx, eax
shl eax, BSF sizeof.WDATA
add eax, window_data
mov ecx, eax
mov [SLOT_BASE + ebx + APPDATA.window], eax
mov [eax + WDATA.thread], ebx
add [eax + WDATA.thread], SLOT_BASE
; set window state to 'normal' (non-minimized/maximized/rolled-up) state
mov [window_data + ebx + WDATA.fl_wstate], WSTATE_NORMAL
mov [window_data + ebx + WDATA.fl_redraw], 1
mov [eax + WDATA.fl_wstate], WSTATE_NORMAL + WSTATE_USED
mov [eax + WDATA.fl_redraw], WSTATE_REDRAW
mov edx, [def_cursor]
mov [eax + WDATA.cursor], edx
;set draw data to full screen
xor eax, eax
mov [ecx + RECT.left], eax
mov [ecx + RECT.top], eax
mov [ecx + WDATA.draw_data.left], eax
mov [ecx + WDATA.draw_data.top], eax
mov eax, [screen_workarea.right]
mov [ecx + RECT.right], eax
mov [ecx + WDATA.draw_data.right], eax
mov eax, [screen_workarea.bottom]
mov [ecx + RECT.bottom], eax
mov [ecx + WDATA.draw_data.bottom], eax
mov ebx, [pl0_stack]
mov esi, [params]